我不能删除一个有ALTER TABLE的专栏.我在SQLite中创建了一个表:

sqlite> create table example ( "field" text not null );
sqlite> .schema
CREATE TABLE example ( "field" text not null);

然后我添加一个包含ALTER TABLE的列:

sqlite> alter table example add column onsale bool;
sqlite> .schema
CREATE TABLE example ( "field" text not null , onsale bool);

然后我试着删除它:

sqlite> alter table example drop column onsale;
Error: near "drop": syntax error

奇怪的是,onsale这个名字没有放在括号里.这就是原因吗?这是SQLite3特有的问题还是一般的SQL问题?

推荐答案

您不能在SQLite 3.35之前的版本中删除列.

您需要创建一个新表.从您的"示例"表复制到新表=)

至少对于小桌子,我总是这么做的.

Sql相关问答推荐

Oracle SQL中的累计总数

在多个柱上连接时,如何确定连接条件?

将重复的值更新为下一个空闲数字

PostgreSQL基于2个COLS的任意组合 Select 唯一行

Django将字符串筛选为整数?

如果元素包含通过SQL指定的字符串,则过滤掉数组元素

如何在PostgreSQL中的一列中添加两个文本?

SQL:如何在表中同时使用GROUPING和CONDITION?

需要从键-值对数据中提取值

如何简化此PostgreSQL查询以计算平均值?

如果另一个表中不存在值列,则插入失败

在子窗口SQL Presto中使用特定条件执行值计数

显示十进制列,但尽可能显示为整数

存储过程太慢

Snowflake 中的分层数据

汇总具有连续日期范围的行

MariaDB非常简单的MATCHAGAINST查询不使用FULLTEXT索引吗?

Oracle函数中无法动态迭代创建的SYS_REFCURSOR

Postgres 窗口函数未按预期工作

遍历数据,计算每个月最后三天的总和