【发布时间】:2018-04-17 04:53:40
【问题描述】:
起初,我很抱歉英语不好。
我在 MariaDB(innoDB, laravel5) 中创建了表,如下所示:
*用户表
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();
});
*article_tag 表
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_tag 表时,我得到:
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))
我已经看过有关此主题的其他帖子,但没有解决。
谢谢你的帮助。谢谢。
【问题讨论】:
-
您对错误有什么不明白的地方?您正在插入 id,但引用表中不存在引用值。
-
哦..对不起,我明白了。
标签: php mysql database laravel mariadb