以下の内容はhttps://takuya-1st.hatenablog.jp/entry/2017/03/30/193546より取得しました。


SQLiteでの alter colmunの代替案

SQLite にはいくつかの機能がない。

たとえば、次の通り。

  • alter table rename columnがない
  • alter table drop column がない

SQLiteでの alter colmunの代替案

  1. いったん別のテーブルにデータを退避する
  2. drop table でテーブルを消す
  3. create table でテーブルを作り直す
  4. select / into で退避データを投入する

いったん別のテーブルにデータを退避する。

方法は2つある。一つは、テーブルを別名にする。もう一つは、create table as select でテーブルをコピーする

ALTER TABLE my_table RENAME TO my_table;
create table my_temp as select * from movie_info;

create table select from でコピーすると、SQLiteのデフォルトなTextメインのカラムになるので細かいConstrainsや型情報やdefault / unique が消える可能性がある。

drop table で消す

drop table my_table;

create table で作り直す

create table my_table  (  .... ) ;

insert select する。

insert into my_table select * from my_temp;

Alter table と column まわりはちょっとハマりますね




以上の内容はhttps://takuya-1st.hatenablog.jp/entry/2017/03/30/193546より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14