次の表があります。
[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;