我有一个问题:我需要从我的SQLite数据库中删除一列.我写了这个查询
alter table table_name drop column column_name
Run Code Online (Sandbox Code Playgroud)
但它不起作用.请帮我.
MeB*_*Guy 191
来自:http://www.sqlite.org/faq.html:
(11)如何在SQLite中添加或删除现有表中的列.
SQLite限制了ALTER TABLE支持,您可以使用该支持将列添加到表的末尾或更改表的名称.如果要在表的结构中进行更复杂的更改,则必须重新创建表.您可以将现有数据保存到临时表,删除旧表,创建新表,然后从临时表中复制数据.
例如,假设您有一个名为"t1"的表,其中列名为"a","b"和"c",并且您要从此表中删除列"c".以下步骤说明了如何完成此操作:
Run Code Online (Sandbox Code Playgroud)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;
Dud*_*uda 54
而不是删除备份表,只需重命名它...
BEGIN TRANSACTION;
CREATE TABLE t1_backup(a,b);
INSERT INTO t1_backup SELECT a,b FROM t1;
DROP TABLE t1;
ALTER TABLE t1_backup RENAME TO t1;
COMMIT;
Run Code Online (Sandbox Code Playgroud)
小智 37
为简单起见,为什么不从select语句创建备份表?
CREATE TABLE t1_backup AS SELECT a, b FROM t1;
DROP TABLE t1;
ALTER TABLE t1_backup RENAME TO t1;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
99915 次 |
| 最近记录: |