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解决这个问题的方法。
我的目标是在数据库中插入一个新行 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解决这个问题的方法。