微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

简单的SQL问题:语法错误在哪里?

如何解决简单的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 COLUMNRENAME COLUMNALTER TABLE变体。其他类型的ALTER TABLE操作,例如 DROP COLUMN ALTER COLUMNADD 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 举报,一经查实,本站将立刻删除。