插入记录时查找唯一的字段 ID


Find unique field id when inserting records

有没有办法在不重复记录的情况下将记录插入到唯一字段中。如果记录存在,我需要在另一个表中使用记录 ID 作为参考。我正在使用php和mySql。

添加一个名为"id"的"INT"类型的列,并在phpmyadmin中将其设置为"主键"和"自动增量"。

这样,您将拥有一个从 1 开始的唯一字段,并计算表中每条新记录,然后您可以在其他表中引用其值。

使用 INSERT ... ON DUPLICATE KEY UPDATE

如果表包含AUTO_INCREMENT列,并且INSERT ... ON DUPLICATE KEY UPDATE插入或更新行,则 LAST_INSERT_ID() 函数返回AUTO_INCREMENT值。例外:对于更新,LAST_INSERT_ID()在MySQL 5.1.12之前没有意义。但是,您可以使用 LAST_INSERT_ID(expr) 来解决此问题。假设idAUTO_INCREMENT列。若要使LAST_INSERT_ID()对更新有意义,请按如下所示插入行:

INSERT INTO table (a,b,c) VALUES (1,2,3)
  ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id), c=3;