【问题标题】:Error in insert with double quote in mariadb在 mariadb 中插入双引号时出错
【发布时间】:2021-12-06 07:18:43
【问题描述】:

我正在使用 Mariadb 并尝试执行一个简单的插入查询:

INSERT INTO admin ("ADMIN_CODE", "DEPT_CODE", "ID") VALUES ("xxx", "yyy", 1);

在执行上述查询时,我收到以下错误:

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '"ADMIN_CODE"...

我使用的 Mariadb 版本是:

10.3.31-MariaDB

我也在尝试从 spark 编写插入查询,然后我也遇到了与我提到的相同的错误。

我尝试启用和禁用ANSI_QUOTES sql 模式,然后它也不起作用。有人可以帮忙吗?

【问题讨论】:

  • 仅对 JSON 路径/值使用双引号。在您的查询中:对列名使用反引号(或不使用),对字符串类型值使用单引号。不要设置ANSI_QUOTES(这没有意义,你修复了一个错误源但创建了另一个)。

标签: java mysql apache-spark mariadb


【解决方案1】:

删除列名周围的双引号,并为字符串文字使用单引号:

INSERT INTO admin (ADMIN_CODE, DEPT_CODE, ID)
VALUES
    ('xxx', 'yyy', 1);

实际上在 MySQL/MariaDB 上,双引号或反引号对于转义列名应该是合法的。但在你的情况下,你不需要转义,所以不要使用双引号。

【讨论】:

  • 如何使用 Spark 做到这一点?我已经集成了对 Spark 的写入,如何从 Spark 中删除列名中的引号?
  • 不幸的是,我不知道 Spark。也许其他人可以建立我的答案。
猜你喜欢
  • 1970-01-01
  • 2014-09-18
  • 1970-01-01
  • 2013-03-24
  • 2014-04-17
  • 2018-07-16
  • 2016-07-06
  • 2011-03-09
  • 2019-07-20
相关资源
最近更新 更多