我有 2 个使用同一列的表;一个表包含文本,另一个表包含图像;他们使用列 listing_id 以便正确的文本与正确的图像一起显示;
我的问题是,因为列 listing_id 是自动递增的,所以我的第一个表能够插入查询,该查询能够插入文本,然后 +1 列 listing_id;然而,我使用另一个 INSERT INTO 查询的第二个表将没有正确的 listing_id,
因为 listing_id 的一些条目已被删除,这意味着第二张表的 listing_id 将永远落后于第一张表的 listing_id;
如何引用列 listing_id?
最佳答案
您需要在从属表中创建一个名为“parent_id”的 INT 列,用于存储它所引用的主表的 ID。当您从第一个中选择记录时,您将使用第一个字段的 auto_increment 字段与第二个字段的“parent_id”连接表。
正如 MrSlayer 提到的,使用第一个表的新插入 ID 来更新“parent_id”。您应该通常在第二个表中有一个唯一的 ID 字段以确保唯一性,但它不应该是与第一个表的关系的一部分。
如果您不清楚如何获取第一个表在插入时自动递增的 ID,请使用 mysql_insert_id()
.
mysql_query("INSERT INTO table1 ...");
echo "Last inserted record_id in table1 was " . mysql_insert_id();
INSERT INTO table1 (mytextcolumn) VALUES('text');
INSERT INTO table2 (parent_id,image_name) VALUES(LAST_INSERT_ID(),'someimage.png');
关于php - 引用自增列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11161448/