SQL INSERT 不适用于 OUTPUT INSERTED 语句

SQL INSERT is not working with OUTPUT INSERTED statement

我的目标是在数据库中插入一个新行 table 并立即取回插入行的 ID。 我在 Whosebug 上看到了一些建议使用此命令的其他帖子:

INSERT INTO selecttable (name) OUTPUT INSERTED.ID VALUES ('aName')

不幸的是,执行此命令失败并显示以下错误消息:

您的 SQL 语法有误;查看与您的 MariaDB 服务器版本对应的手册,了解在 'OUTPUT INSERTED.ID VALUES ('aName')'

附近使用的正确语法

没有输出语句的命令执行效果很好:

INSERT INTO selecttable (name) VALUES ('aName')

你知道为什么上面的命令不起作用吗?

总的来说,我认为你使用LAST_INSERT_ID():

INSERT INTO selecttable (name)
    VALUES ('aName');

SELECT LAST_INSERT_ID();

这是一个不完美的等效结构。例如,它不适用于多行。但它是MariaDB/MySQL解决这个问题的方法。