[SQLite] 既存テーブルに後から主キーを追加する
ロゴ
「Web 開発」に関連する記事一覧

[SQLite] 既存テーブルに後から主キーを追加する

2018/11/01 21:00
SQL SQLite 

SQLite で主キーのない既存テーブルに後から主キーを追加することができないか模索していたところ、以下の手順でできたのでメモしておきます。

  1. テンポラリでテーブルを作り、元のテーブルのデータをすべてコピー
  2. 元のテーブルを削除
  3. 主キーありで元のテーブルと同じ名前のテーブルを作成
  4. テンポラリテーブルから主キー以外のカラムをすべてコピー
  5. テンポラリテーブルを削除

以下は、name, english_name というカラムを持っている original_table というテーブルに id という主キーを追加する例です。追加した主キーには整数値が振られます。


CREATE TABLE 'temp_table' (
    'name', 'english_name'
);

INSERT INTO 'temp_table'
SELECT "name", "english_name" FROM 'original_table';

DROP TABLE 'original_table';
CREATE TABLE 'original_table' (
    'id' integer primary key,
    'name'  NOT NULL,
    'english_name'  NOT NULL);

INSERT INTO 'original_table'("name", "english_name")
SELECT "name", "english_name" FROM 'temp_table';

DROP TABLE 'temp_table';


    このエントリーをはてなブックマークに追加  

関連記事


0.016 sec
にほんブログ村 ゲームブログ ファイアーエムブレムへ にほんブログ村 デザインブログ コンピュータグラフィックスへ

Copyright(C)2006-2018 wsp All Rights Reserved