如何解决简单的SQL问题:语法错误在哪里?
sqlite> .schema autor
CREATE TABLE autor (ID INTEGER PRIMARY KEY,NOME TEXT,CIDADE TEXT,ESTADO TEXT,TELEFONE TEXT,idade number);
sqlite> alter table autor drop idade;
Error: near "drop": Syntax error
(也尝试使用DROP COLUMN代替DROP)。 请帮助,这是一个错误吗?
解决方法
您不能使用SQLite执行此操作,因为它不支持删除列。这是a documented limitation(重点是我):
仅支持
RENAME TABLE
命令的ADD COLUMN
,RENAME COLUMN
和ALTER TABLE
变体。其他类型的ALTER TABLE
操作,例如DROP COLUMN
,ALTER COLUMN
,ADD CONSTRAINT
等。
一个可能的解决方法是用正确的结构重新创建另一个表,然后复制数据,删除旧表并重命名新表:
create table autor_new (
id integer primary key,nome text,cidade text,estado text,telefone text
);
insert into autor_new select id,nome,cidade,estado,telefone from autor;
drop table autor; -- back it up first!
alter table autor_new rename to autor;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。