php - 引用自增列?

标签 php mysql

我有 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/

相关文章:

php - 在 Google App Engine 中连接到 Google Cloud SQL

javascript - 在特定情况下显示和隐藏弹出窗口

php - 我如何配置 postfix 以从 azure 云发送电子邮件?

PHP 不会向 mysql 发送数据!? ( undefined variable 错误)

mysql - mysql过程中未创建临时表

php - 使用 Curl 代理发布数据不返回任何内容

PHP MySQL 计数查询问题

php - MySQL:如果匹配两列则忽略插入

mysql - 错误代码 : 1054. 'ExamQuestions.Employees.Number' 中的未知列 'field list'

Rails 中的 Mysql 约束数据库条目