Laravel migration - Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails
had the same problem. fixed it by adding nullable
to field
Schema::create('table_name', function (Blueprint $table) {
...
$table->integer('some_id')->unsigned()->nullable();
$table->foreign('some_id')->references('id')->on('other_table');
...
});
note that after migration all existed rows will have some_id = NULL
You probably have some records in the inventories
table with local_id
that does not have corresponding id
in the contents
table, hence the error. You could solve it by one of the two ways:
- Run the migration with
foreign_key_checks
turned off. This will disabled the foreign key constraints for the existing rows (if that's what you want). It's documented here - Insert only those records that have corresponding
id
field incontents
table. You can useINSERT INTO.. WHERE EXISTS
query to filter the records out, and insert only those records.