我怎么添加一个额外的列于现有源码数据库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

你不知道。非微不足道的修改表不支持。什么你需要做的是:

  1. 数据复制到一个临时表中删除旧的
  2. 创建新表
  3. 复制的数据的原始表到它
  4. 创建新表
  5. 复制数据,从临时进入新的表格
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top