Php SQLSTATE[23000]:完整性约束冲突:1452无法添加或更新子行(laravel5)
首先,我很抱歉英语不好 我在laravel5的MariaDBinnoDB中创建了表,如下所示: *用户表Php SQLSTATE[23000]:完整性约束冲突:1452无法添加或更新子行(laravel5),php,mysql,database,laravel,mariadb,Php,Mysql,Database,Laravel,Mariadb,首先,我很抱歉英语不好 我在laravel5的MariaDBinnoDB中创建了表,如下所示: *用户表 Schema::create('users', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->string('email')->unique(); $table->
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
*文章表
Schema::create('articles', function (Blueprint $table) {
$table->increments('id');
$table->integer('user_id')->unsigned()->index();
$table->string('title');
$table->text('content');
$table->timestamps();
$table->foreign('user_id')->references('id')->on('users')->onUpdate('cascade')->onDelete('cascade');
});
*标签表
Schema::create('tags', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('slug')->index();
$table->timestamps();
});
*物品标签表
Schema::create('article_tag', function (Blueprint $table) {
$table->increments('id');
$table->integer('article_id')->unsigned();
$table->integer('tag_id')->unsigned();
$table->foreign('article_id')->references('id')->
on('articles')->onDelete('cascade');
$table->foreign('tag_id')->references('id')->
on('tags')->onDelete('cascade');
});
因此,当我尝试在article_标记表中插入值时,我得到:
insert into `article_tag` (`article_id`, `tag_id`) values (3, 9);
*错误消息
SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`mmdance`.`article_tag`, CONSTRAINT `article_tag_tag_id_foreign` FOREIGN KEY (`tag_id`) REFERENCES `tags` (`id`) ON DELETE CASCADE) (SQL: insert into `article_tag` (`article_id`, `tag_id`) values (1, 9))
我看过其他关于这个话题的帖子,但没有找到解决方案。
谢谢你的帮助。谢谢。取下外键,就可以开始了。
或者使用一些引用键连接到基表只需导入您正在创建/更新记录的模式外观即可
\Schema::disableForeignKeyConstraints();
// Your query
\Schema::enableForeignKeyConstraints();
关于这个错误,你还不明白什么?您正在插入ID,但引用表中不存在引用值。哦..,对不起,我理解了。如果您希望在创建或更新记录时禁用外键约束,那么使用外键约束有什么意义。那是个坏主意。