sqlite変更テーブル、テーブルフィールドなどsql serverとの違い

2980 ワード

sqliteではALTER TABLEコマンドのRENAME TABLEとADD COLUMNのみがサポートされています.DROP COLUMN、ALTER COLUMN、ADD CONTRAINTなどの他のタイプのALTER TABLE動作は無視されます.
テーブル名の変更:
  alter table tableName rename to newTableName

列の追加
  alter table tableName add columnName columnType

この2つはsql serverとほぼ一致していて使いやすいですが、後ろは少し青くてやせています
列の削除
  create table copyTableName (fields)

  insert into copyTableName (fields)  select fields from tableName

  dorp table tableName

  alter table copyTableName rename to tableName

まず新しいテーブルを作成し、元のテーブルデータを新しいテーブルに転送します.もちろん、新しいテーブルのfieldsは削除しないフィールドだけを保持し、元のテーブルを削除してから、新しいテーブルの名前を元のテーブル名に変更します.
列の変更
実装方法は削除カラムと同じですが、fieldsでは元のカラムだけでなく、新しいカラム名とタイプを追加します.
その他はしばらく出会っていませんが、以下に記録しておきます.
テーブルの作成sqlの取得
  select sql from sqlite_master where name='tableName' and type='table'

テーブルのすべてのフィールドを取得
  PRAGMA table_info('tableName')

テーブルが存在するかどうかを判断する
  select count(*)  from sqlite_master where type='table' and name = 'tableName'

 
うん、、、中規中矩の記録文