我已经在Firefox浏览器中下载了sqlite应用程序,并打开了sqlite应用程序。
1)创建了名为DBSQLTEST的数据库。
2)创建的表名为SQLTEST contain有三个字段:SLNO、NAME和AGE。
3)插入新记录
但我希望删除sqltest表中的“AGE”列
我使用如下所示的sql命令
ALTER表SQLTEST下降列年龄
SQLiteManager消息说
mozIStorageConnection.createStatement SQLiteManager:可能的SQL语法错误: ALTER列年龄接近" DROP ":语法错误异常名称: NS_ERROR_FAILURE异常消息:组件返回的失败代码: 0x80004005 (NS_ERROR_FAILURE) NS_ERROR_FAILURE
那是什么错误?
发布于 2014-01-09 11:44:17
sqlite不支持DROP COLUMN在ALTER TABLE中。只能重命名表和添加列。
参考资料:altertable.html
如果需要删除列,请创建一个新表,在那里复制数据,删除旧表,并将表重命名为其意图名称。
发布于 2014-01-09 11:48:52
statements。只能重命名表或添加列。
如果要删除列,最好的选择是创建一个没有列的新表,并删除旧表以重命名新表。
例如,假设您有一个名为"t1“的表,其列名为"a”、"b“和"c”,并且希望从该表中删除列"c“。以下步骤说明了如何做到这一点:
BEGIN TRANSACTION;
CREATE TEMPORARY TABLE t1_backup(a,b);
INSERT INTO t1_backup SELECT a,b FROM t1;
DROP TABLE t1;
CREATE TABLE t1(a,b);
INSERT INTO t1 SELECT a,b FROM t1_backup;
DROP TABLE t1_backup;
COMMIT;贝诺特的功劳。
发布于 2014-01-09 11:53:24
创建一个表
创建表SQLTEST ("SLNO“整数主键、”名称“文本、年龄整数)
如果要删除列
将表SQLTEST重命名为SQLTESTCOPY
创建表SQLTEST ("SLNO“整数主键,”名称“文本)
插入SQLTEST“从SQLTESTCOPY中选择"SLNO",”“
删除表SQLTESTCOPY
很简单。
https://stackoverflow.com/questions/21019248
复制相似问题