1

我有 2 个正在使用的表使用相同的列;一个表包含文本,另一个表包含图像;他们使用列 listing_id 以便正确的文本与正确的图像一起显示;

我的问题是,因为列listing_id 是自动递增的,所以我的第一个表能够插入能够插入文本的查询,然后+1 列listing_id;但是我使用另一个 INSERT INTO 查询的第二个表没有正确的listing_id,

因为listing_id的一些条目已被删除,这意味着第二个表的listing_id将永远在第一个表listing_id的后面;

如何引用列listing_id?

4

1 回答 1

2

您需要在从属表中创建一个名为“parent_id”的 INT 列,该列存储它所引用的主表的 id。当您从第一个选择记录时,您将使用第一个字段的 auto_increment 字段与第二个字段的“parent_id”连接表。

正如 MrSlayer 提到的,使用新插入的第一个表的 ID 来更新“parent_id”。为了唯一性,您通常应该在第二个表中有一个唯一的 ID 字段,但它不应该是与第一个表的关系的一部分。

如果您不清楚如何获取插入时第一个表 auto_increments 的 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'); 
于 2012-06-22T17:45:22.413 回答