sqlite 将列添加到表中使名称不带方括号显示

qgzx9mmu  于 2022-11-14  发布在  SQLite
关注(0)|答案(1)|浏览(179)

我在我的表中添加了一列:

ALTER TABLE venues ADD decent BOOLEAN NOT NULL DEFAULT 0;

.schema venues返回:

CREATE TABLE [venues] (
   [id] INTEGER PRIMARY KEY,
   [foursquare_id] TEXT NOT NULL,
   [pick] INTEGER NOT NULL DEFAULT 0,
   [foursquare_data] TEXT NOT NULL,
   [lat] FLOAT NOT NULL,
   [lng] FLOAT NOT NULL,
   [name] TEXT NOT NULL,
   [closed] INTEGER NOT NULL DEFAULT 0,
   [google_data] TEXT NOT NULL,
   [google_place_id] TEXT NOT NULL,
   [google_name] TEXT NOT NULL
, decent BOOLEAN NOT NULL DEFAULT 0);

我添加的列没有方括号,而所有其他列都有。这是什么意思?我需要用其他方法来做这件事吗?

nnsrf1az

nnsrf1az1#

点命令.schema venues返回与表venues对应的行的Schema Tablesql列。
等价的SQL语句将为:

SELECT sql FROM sqlite_schema WHERE name = 'venues';

如《架构表解释》中所述:
列中的文本是创建对象的原始CREATE语句的副本文本,但...
这意味着如果在CREATE TABLE语句中的所有或部分列名中使用了方括号,则在执行.schema venues时会得到以下结果。
如果添加新列,则其定义将被添加到原始CREATE TABLE语句中的sql列内**,就像它在ALTER TABLE语句中所写的那样**。
如果要为所有列名使用方括号,则在添加列时使用方括号:

ALTER TABLE venues ADD [decent] BOOLEAN NOT NULL DEFAULT 0;

请参阅demo

相关问题