题
我怎么添加一个额外的列于现有源码数据库2的表格,有的数据和指数相关联。
这似乎是改变表SQL为,是不是可以在sqlite2?
解决方案
从 SQLITE常见问题解答:
SQLite的具有有限的ALTER TABLE支持,可以使用将列添加到一个表的末尾或者改变表的名称。如果你想在一个表的结构更加复杂的变化,你将不得不重新创建表。您可以将现有的数据保存到临时表,删除旧表,创建新表,然后将数据从临时表复制回来。
例如,假设你有一个名为“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;
其他提示
这可能不是 - sqlite3的已经出了一段时间。你必须创建另一个数据库与表,你想要的方式和数据复制到其中。或者,创建一个新的表,复制数据,删除原始和用新的替换。
不要忘记,DROP TABLE下降也相关联的触发器。
在你要修改表使用命令
.scheme TABLE_TO_MODIFY
这将转储所有将包括您需要重新创建触发器被丢弃当前的语句。
干杯,
Elixon
你不知道。非微不足道的修改表不支持。什么你需要做的是:
- 数据复制到一个临时表中删除旧的
- 创建新表
- 复制的数据的原始表到它
- 创建新表
- 复制数据,从临时进入新的表格
不隶属于 StackOverflow