Mysql 当我们插入行时,是否真的返回id列?
请告诉我,当我们进行insert时,请在一个查询中真正返回Mysql 当我们插入行时,是否真的返回id列?,mysql,sql,Mysql,Sql,请告诉我,当我们进行insert时,请在一个查询中真正返回ID。由于ID是自动递增的,所以不要在查询中指定它,您只需指定即可 Table test id - int, primary key, auto_incriment name - varchar(100) INSERT INTO test (ID, Name) VALUES ('$ID', '$Name'); (注意,如果这是来自PHP,请务必注意SQL注入问题!) 如果您指定一个ID,它将覆盖MySQL的正常操作(有时可能有
ID
。由于ID是自动递增的,所以不要在查询中指定它,您只需指定即可
Table test
id - int, primary key, auto_incriment
name - varchar(100)
INSERT INTO test
(ID, Name)
VALUES
('$ID', '$Name');
(注意,如果这是来自PHP,请务必注意SQL注入问题!)
如果您指定一个ID,它将覆盖MySQL的正常操作(有时可能有用,但在这种情况下不太可能)
您可以使用last\u INSERT\u ID()。(请注意,必须先插入列,您不能调用此列,然后使用该值插入)正如@MichaelBerkowski所说,您不能在一个查询中返回ID
对于返回ID
make next:
关于LAST_INSERT_ID()的信息
您可以读取我想这是您正在寻找的,您无法在一次查询中返回它,除非您构建一个执行插入的存储过程,然后查询最后插入的id。但是MySQL提供了最后插入的id()
用于以下目的:选择最后插入的id()
和大多数特定于语言的API都有一个包装器方法。或者切换到sql server并使用OUTPUT子句。@Mihai或者切换到Postgres并使用returning
子句,这实际上会产生一个结果set@a_horse_with_no_name谢谢,我想找到mysql的信息
INSERT INTO test
(Name)
VALUES
('$Name');
INSERT INTO test
(ID, Name)
VALUES
('$ID', '$Name');
SELECT LAST_INSERT_ID();