我正在尝试在 2 个表之间创建多对多关系。我有 3 张 table 。它遵循 TOXY 模型。
table a: a.id (primary key)
table ab: ab.a_id (foreign key) ab.b_id (foreign key)
table b: b.id (primary key)
我应该如何插入数据才能将它们全部链接起来?
像这样? "INSERT INTO a ('name') VALUES ('my name')";
然后像这样? "INSERT INTO b ('name') VALUES ('my name')";
但是我必须有 a.id 和 b.id 才能把它放在表 ab 中。我应该如何取回它们?
我知道我可以做一个 SELECT a.id FROM a WHERE name = 'my name'。但是没有更简单的方法可以在您插入行时自动返回一个 id 吗?
最佳答案
您需要做的就是将这些 ID 存储在变量中,以便在查询中使用以插入到 ab
表中。 LAST_INSERT_ID()
返回插入行的 ID。因此,例如在 PHP 中:
// Run command to insert into A, then:
$a = mysql_query('SELECT LAST_INSERT_ID();');
// Run command to insert into B, then:
$b = mysql_query('SELECT LAST_INSERT_ID();');
// Then $a and $b hold the IDs that you can use to insert into AB.
mysql_query("INSERT INTO ab (a_id, b_id) VALUES ($a, $b);");
关于mysql - 多对多关系 INSERT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1735571/