Third impact
最終更新: 2010-04-24
更新者: 00000001
SQLite翻訳文書セットの一部です。
随時翻訳を続けています。

ALTER TABLE

ALTER TABLE

sql-statement ::= ALTER TABLE [database-name .] table-name alteration
alteration ::= RENAME TO new-table-name
alteration ::= ADD [COLUMN] column-def

ALTER TABLE コマンドの SQLite バージョンは、既存のテーブルの 名前の変更と新しいカラムの追加を可能にします。  カラムをテーブルから取り除く事は出来ません。

RENAME TO 構文は、 [database-name.]table-namenew-table-name で識別されるテーブルの名前変更のために使います。  このコマンドはアタッチされたデータベース間でテーブルを移動するためには使えません。 ただ同じデータベース上のテーブル名を変更するのみです。

名前変更したテーブルがトリガーやインデックスを持っている場合、 名前変更した後も、これらはテーブルと結びついたままです。 しかし、もし名前変更したテーブルを参照するトリガーによって実行されたビュー定義や ステートメントがあるなら、 これらが新しいテーブル名を使うように自動的に修正される事はありません。 もしこれを必要とするなら、トリガーあるいはビュー定義を手作業で 新しいテーブル名を使うようにドロップして再作成しなくてはなりません。

ADD [COLUMN] 構文は、既存のテーブルに新しいカラムを付け加えるために使います。 新しいカラムは、常に既存のカラムのリストの末尾に加えられます。 Column-def は以下の制約で、 CREATE TABLE ステートメントで許される形式の いずれでもとる事が出来ます。

  • カラムは PRIMARY KEY や UNIQUE 制約を持たない。
  • カラムは CURRENT_TIME、 CURRENT_DATE、 CURRENT_TIMESTAMP の 規定値を持たない。
  • NOT NULL 制約が指定されている場合、 カラムは NULL 以外の規定値を持たなくてはならない。

ALTER TABLE コマンドの実行時間は、テーブルのデータ量に依存しません。 ALTER TABLE コマンドは1行しかないテーブルと同じくらい素早く1千万行あるテーブルで 実行されます。

ADD COLUMN がデータベースで実行された後 VACUUM されるまで、そのデータベースは SQLite バージョン 3.1.3 以前では読めません。

This page last modified on 2006/02/09 22:13:42
お知らせ
Wiki始めました。