【发布时间】:2014-01-12 22:00:05
【问题描述】:
在 MySQL 中,我有三个表:projects、tags 和 tags_posts。
tags_posts 是projects 和tags 之间的表,其中包含project_id 和tag_id 作为外键。这样,我就可以轻松选择project_id = x 的所有标签,或者选择tag_id = y 的所有项目。
当然,我想将项目添加到数据库中。我了解了START TRANSACTION; 和COMMIT;,这样查询将被完全执行,或者根本不执行。
但是对于这三个表的INSERT、SELECT 和UPDATE 数据,我必须使用什么查询?
我考虑过使用:
INSERT INTO projects([column-1], [column-2], [column-N]) VALUES([value-1], [value-2], [value-N]);
INSERT INTO tags_posts(tag_id, project_id) VALUES(1, LAST_INSERT_ID());
INSERT INTO tags(tag_id, tag_name) VALUES(LAST_INSERT_ID(), 'php');
MySQL Workbench 给出错误 1452:外键约束失败。 PHPMyAdmin 挂起执行此查询。
谁能帮助我对这三个表使用正确的查询 INSERT、UPDATE 或 SELECT?
【问题讨论】:
-
在将行插入
tags和projects之后,您必须插入tags_postsLAST。 -
当然,这听起来很合理!但是,除此之外,我的查询是否有效?
标签: mysql database foreign-keys