我有下表:
[id,lang,data]
主键在哪里id
我想将主键更改为 id,lang
不丢失表的内容。我必须运行什么查询才能更改它
谢谢
根据@GarnerJosh 的评论,您不能运行单个命令来更改它 - SQLite 不允许更改现有的表结构。相反,使用复合主键创建一个新表并将数据复制到:
CREATE TABLE my_table_copy(
id INTEGER,
lang INTEGER,
data TEXT,
PRIMARY KEY (id, lang)
);
INSERT INTO my_table_copy (id, lang, data)
SELECT id, lang, data FROM my_table;
DROP TABLE my_table;
ALTER TABLE my_table_copy RENAME TO my_table;