标识符周围的方括号在SQLite中是什么意思?

wlp8pajw  于 2023-01-26  发布在  SQLite
关注(0)|答案(1)|浏览(180)

在某些SQL方言中,方括号中的标识符有特殊的语义。在SQLite中,将标识符括在方括号中有什么效果?
例如,SQLite(至少从3.40.1开始)接受以下表格定义。

CREATE TABLE [Banana] (
  [Weight] REAL NOT NULL,
  [Color] TEXT DEFAULT 'yellow' NOT NULL,
  [Ripe] BOOLEAN NOT NULL DEFAULT 1
);

然后可以插入并选择香蕉:

INSERT INTO [Banana] ([Weight]) VALUES (1.0), (2.0), (3.0);

SELECT * FROM [Banana];
arknldoa

arknldoa1#

方括号 * 转义 * 数据库标识符,如表名。例如,如果要使用保留的SQLite关键字(如TABLE)命名表,则可以将名称转义到方括号中:

CREATE TABLE [Table] (
    [Weight] REAL NOT NULL,
    [Color] TEXT DEFAULT 'yellow' NOT NULL,
    [Ripe] BOOLEAN NOT NULL DEFAULT 1
);

在SQLite的早期版本中,您可以使用双引号来实现相同的目的:

CREATE TABLE "Table" (

请注意,一般情况下,您应该避免这种命名方案,因为您将永远不得不对表名进行转义。

相关问题