我的目标是在数据库表中插入新行,并立即取回插入行的ID。我在stackoverflow上看到了一些其他的帖子,建议使用这个命令:
INSERT INTO selecttable (name) OUTPUT INSERTED.ID VALUES ('aName')
不幸的是,此命令的执行失败,并显示以下错误消息:
您的SQL语法有错误;查看与MariaDB服务器版本对应的手册,了解在"OUTPUT INSERTED.ID VALUES('Name'("附近使用的正确语法
在没有输出语句的情况下执行命令效果良好:
INSERT INTO selecttable (name) VALUES ('aName')
你知道为什么上面的命令不起作用吗?
通常,我认为您使用LAST_INSERT_ID()
:
INSERT INTO selecttable (name)
VALUES ('aName');
SELECT LAST_INSERT_ID();
这是一个不完美的等价结构。例如,它不能很好地处理多行。但这是MariaDB/MySQL解决这个问题的方法。