在 SQLite 中用两列作为唯一约束更新 table,不再创建 table

Update table with two columns as unique constraints in SQLite, NOT create table again

我想更新我的 SQLite 数据库中的 table 并将 UNIQUE 约束添加到我的 Data [=25= 中的两列].

这是我尝试的方法,但抛出错误。

ALTER TABLE Data
ADD CONSTRAINT Data UNIQUE(id, dateofday);

所有以前的答案都在 create table 上,我不想要。有什么建议吗?

不可能。您不能在 sqlite 中向现有 table 添加约束。您只能重命名 table 或将列添加到 table.

Link供您参考:http://www.sqlite.org/lang_altertable.html

但是您可以使用这种替代方法来实现相同的目的。

  1. 创建一个临时 table,其中包含与当前 table 相同的列,并具有您需要的所有约束。

  2. 然后将所有数据从旧 table 移动到新的临时 table 并使用定义的约束 INSERT INTO Destination SELECT * FROM Source;

  3. 检查您是否已将原始table中的所有数据复制到临时table。

  4. 删除原来的 table 并将临时 table 重命名为原来 table 的名称。