【问题标题】:SQL INSERT is not working with OUTPUT INSERTED statementSQL INSERT 不适用于 OUTPUT INSERTED 语句
【发布时间】:2020-04-03 13:50:47
【问题描述】:

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

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

很遗憾,此命令的执行失败并显示以下错误消息:

您的 SQL 语法有误;查看与您的 MariaDB 服务器版本相对应的手册,了解在“OUTPUT INSERTED.ID VALUES ('aName')”附近使用的正确语法

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

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

你有什么想法,为什么上面的命令不起作用?

【问题讨论】:

  • MariaDB 在INSERT 语句中支持OUTPUT 吗?
  • @GordonLinoff - 也许他们可以查看他们的 MariaDB 版本的手册以获得正确的语法?

标签: sql dbeaver mariadb-10.2


【解决方案1】:

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

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

SELECT LAST_INSERT_ID();

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-14
    • 1970-01-01
    • 1970-01-01
    • 2015-10-07
    • 1970-01-01
    相关资源
    最近更新 更多