我们制作插入行时真的返回id列吗?

时间:2014-08-20 15:17:22

标签: mysql sql

Table test
id - int, primary key, auto_incriment
name - varchar(100)

INSERT INTO test
  (ID, Name)
VALUES
  ('$ID', '$Name');

请告诉我,当我们进行插入时,请在一个查询中真正返回ID吗?

2 个答案:

答案 0 :(得分:0)

由于ID是自动递增的,因此不要在查询中指定它,只需执行

即可
INSERT INTO test
(Name)
VALUES
('$Name');

(注意,如果这是来自PHP,请务必注意SQL注入问题!)

如果你指定一个ID,它将覆盖MySQL的正常操作(这在某些情况下很有用,但在这种情况下不太可能)。

您可以使用LAST_INSERT_ID()返回上次插入的ID。 (注意必须首先插入列,不能调用它然后插入该值)

答案 1 :(得分:0)

如同@MichaelBerkowski所说,你不能在一个查询中返回ID

返回ID下一步:

INSERT INTO test
  (ID, Name)
VALUES
  ('$ID', '$Name');

SELECT LAST_INSERT_ID();
关于您LAST_INSERT_ID();

信息可以阅读 here