如何使用SQL保留字作为表名?

时间:2019-02-01 12:51:37

标签: sql mariadb

当使用此查询:

INSERT INTO order (order_quantity)
           VALUES ('50')

我发现了一个错误:

  

您的SQL语法有错误;检查手册   对应于您的MariaDB服务器版本,以使用正确的语法   在第146行的'order(order_quantity)VALUES('50')'附近

我的查询出了什么问题?

1 个答案:

答案 0 :(得分:8)

不建议将保留字用作数据库,表,列,变量或其他对象名。如果您希望使用保留字用作ANSI标准的语法的对象名称,它必须用双引号,让关系引擎(取,一个是)这个词被用来作为一个对象,而不是作为给定上下文中的关键字。

下面是一些例子具体到不同的SQL引擎:

order是一个SQL关键字,用于排序结果(ORDER BY ...

在其周围环绕反引号如果您使用MySQLMaria DB

INSERT INTO `order` (order_quantity) VALUES ('50');

如果使用MS SQL Server

,请用括号括住
INSERT INTO [order] (order_quantity) VALUES ('50');

如果您使用的是pgSQL

,请用双引号引起来
INSERT INTO "order" (order_quantity) VALUES ('50');

例如,除了常识之外,没有什么可以阻止您使用表INSERT和列INTO创建名为VALUE(42)的数据库

enter image description here

是的,此查询有效:

USE [INSERT];
SELECT [INTO].[VALUE(42)] FROM [INTO];