我正在尝试在2个表之间创建多对多关系。我有3张桌子。它遵循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 a ('name') VALUES ('my name')";
像这样吗 "INSERT INTO b ('name') VALUES ('my name')";
"INSERT INTO b ('name') VALUES ('my name')";
但是然后我必须具有a.id和b.id才能将其放在表ab中。我应该如何找回它们?
我知道我可以从WHERE name =’my name’进行SELECTa.id。但是有没有更简单的方法可以在u插入行时自动返回ID?
您需要做的就是将这些ID存储在变量中,以便在查询中使用该变量插入ab表中。LAST_INSERT_ID()返回插入行的ID。因此,例如在PHP中:
ab
LAST_INSERT_ID()
// 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);");