sqlite 2データベーステーブルに列を追加するにはどうすればよいですか
-
11-09-2019 - |
質問
データとインデックスが関連付けられている既存の sqlite 2 データベース テーブルに追加の列を追加するにはどうすればよいですか。
そのためのテーブルSQLの変更はsqlite2では利用できないようですか?
解決
SQLiteのよくある質問でます:
SQLiteはあなたがテーブルの末尾に列を追加したり、テーブルの名前を変更するために使用できるALTER TABLEのサポートが制限されています。あなたは、テーブルの構造がより複雑な変更を加えたい場合は、テーブルを再作成する必要があります。その後、一時テーブルからバックでデータをコピーし、新しいテーブルを作成し、古いテーブルを削除し、一時テーブルに既存のデータを保存することができます。
たとえば、列名「A」、「B」、および「C」とし、この表から列「c」を削除したいことを「T1」という名前のテーブルがあるとします。次の手順は、これが行うことができる方法を示します:
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のはしばらく出てきました。あなたは、テーブルにあなたがそれを望むように他のDBを作成し、そこにデータをコピーする必要があります。それとも、新しいテーブルを作成し、データをコピーし、オリジナルを削除し、新しいものと交換します。
DROP TABLEはまた、関連のトリガーをドロップすることを忘れないでください。
このコマンドを使用してテーブルを変更しようとしている前に、
.scheme TABLE_TO_MODIFY
それはあなたが再作成する必要があるのトリガーを含むドロップされます現在のすべての文をダンプします。
乾杯、
Elixon
あなたはしない。テーブルの重要な変更はサポートされていません。行う必要があるのは次のとおりです。
- データを一時テーブルにコピーし、古いテーブルを削除します
- 新しいテーブルを作成する
- 元のテーブルから元のテーブルにデータをコピーします
- 新しいテーブルを作成する
- temp から新しいテーブルにデータをコピーします
所属していません StackOverflow