重複の可能性:
sqlite の ALTER COLUMN
アップグレード中に列のデータ型を変更したいと考えています。列のデータ型を変更する方法。
Alter table Alter column ステートメントを使用すると、構文エラーが発生しますか?
重複の可能性:
sqlite の ALTER COLUMN
アップグレード中に列のデータ型を変更したいと考えています。列のデータ型を変更する方法。
Alter table Alter column ステートメントを使用すると、構文エラーが発生しますか?
できません。SQLiteのALTERTABLEはかなり制限されています。
したがって、ALTER TABLEを使用してテーブルの名前を変更するか、新しい列を1つ追加することができます。良い面として(少なくともあなたにとっては)、SQLiteの「タイプ」の概念はかなり緩く、列を定義した方法よりも、何かを使用する方法に大きく依存します。例えば:
sqlite> create table t (i int);
sqlite> insert into t (i) values (11);
sqlite> insert into t (i) values ('pancakes');
sqlite> select * from t;
i
11
pancakes
したがって、任意のタイプのデータを他のタイプの列に入れることができます。
ただし、テーブルのデータをネイティブタイプに変換する方法を決定するためにテーブルのスキーマをチェックするツールを使用している場合は、ALTER TABLEALTERCOLUMNをシミュレートする必要があります。AFAIK、それを行う唯一の方法は醜い方法です:
私はそれを醜い方法で行い、SQLiteの緩い型システムを無視します。整数として宣言されている列を見つけた場合'pancakes'
、私は少し戸惑い、責任者に厳しい言葉をかけるでしょう。
このページに記載されているとおり
http://www.sqlite.org/lang_altertable.html
ALTER TABLE ALTER COLUMN
Sqliteは構文をサポートしていません。
私が見ているように、列の値を別の場所に保存し、新しい列を追加し、保存された値を新しい列に書き換えてから、古い列を削除する必要があります。