4D v16

ALTER TABLE

ホーム

 
4D v16
ALTER TABLE

ALTER TABLE  


 

 

ALTER TABLE sql_name
{ADD [TRAILING] column_definition [PRIMARY KEY] |
DROP sql_name |
ADD
primary_key_definition |
DROP PRIMARY KEY
|
ADD
foreign_key_definition |
DROP CONSTRAINT
sql_name |
[{ENABLE | DISABLE} REPLICATE] |
[{ENABLE | DISABLE} LOG] |
[MODIFY sql_name {ENABLE | DISABLE} AUTO_INCREMENT] |
[MODIFY sql_name {ENABLE | DISABLE} AUTO_GENERATE] |
[{ENABLE | DISABLE} TRIGGERS] |
SET SCHEMA sql_name}

説明  

ALTER TABLEコマンドは既存のテーブル (sql_name) を変更するために使用します。以下のいずれかのアクションを実行できます:

ADD column_definitionを渡すと、テーブルにカラムを追加します。TRAILING は(使用するのであればcolumn_definition の前に置く必要があります)列を作成する際に、ストラクチャーファイル内のテーブル内にある列のすぐあとに作成するように強制します。このオプションは、 データを格納している列が(データを消去することなく)テーブルから削除されたときに有用です。なぜなら、既存のデータが新しい列に対して割り当てられる のを防ぐことができるからです。
注: このコマンドはオブジェクト型のフィールド(カラム)の追加を許可しません。
PRIMARY KEYはカラムを追加する際に主キーを設定するために使用します。
DROP sql_nameを渡すと、テーブルからカラムsql_nameを削除します。
ADD
primary_key_definitionを渡すと、テーブルにPRIMARY KEYを追加します。
DROP PRIMARY KEY
を渡すと、テーブルのPRIMARY KEYを削除します。
ADD
foreign_key_definitionを渡すと、テーブルにFOREIGN KEYを追加します。
DROP CONSTRAINT
sql_nameを渡すと、指定した制約をテーブルから削除します。
ENABLE REPLICATEまたはDISABLE REPLICATEはテーブルの複製メカニズムを有効/無効にします (SQLを使用した複製参照)。
ENABLE LOG または DISABLE LOG はテーブルのデータログを有効化または無効化します。
ENABLE AUTO_INCREMENT または DISABLE AUTO_INCREMENT は倍長整数型のフィールドに対して「自動インクリメント」のオプションを有効化または無効化します。
ENABLE AUTO_GENERATE または DISABLE AUTO_GENERATE はUUID型の文字型フィールドに対して「自動UUID」のオプションを有効化または無効化します。どちらの場合においても、はじめにMODIFY キーワードに続いて変更するカラムのsql_name を渡す必要があります。
ENABLE TRIGGERSDISABLE TRIGGERS テーブルのトリガーを有効化または無効化します。トリガーをデータベースレベルで全体的に管理したい場合は、ALTER DATABASEを使用する必要があります。
SET SCHEMA sql_nameを渡すと、テーブルをsql_name スキーマへ転送します。

以下の場合にはコマンドはエラーを返します:

  • 任意の ENABLE LOG 引数が渡されているのに有効なプライマリーキーが定義されていない場合。
  • DISABLE LOG を使用してジャーナルを無効化せずにテーブルのプライマリーキーの定義を変更または削除しようとした場合。

この例題ではテーブルを作成し、データを挿入し、その後Phone_Numberカラムを追加、さらに値を追加して、最後にIDカラムを削除します:

CREATE TABLE ACTOR_FANS
(ID INT32, Name VARCHAR);

INSERT INTO ACTOR_FANS
(ID, Name)
VALUES(1, 'Francis');

ALTER TABLE ACTOR_FANS
ADD Phone_Number VARCHAR;

INSERT INTO ACTOR_FANS
(ID, Name, Phone_Number)
VALUES (2, 'Florence', '01446677888');

ALTER TABLE ACTOR_FANS
DROP ID;

倍長整数型のidフィールド[Table_1]に対して"自動インクリメント"オプションを有効化する場合を考えます:

 Begin SQL
    ALTER TABLE Table_1 MODIFY id ENABLE AUTO_INCREMENT;
 End SQL

オプションを無効化する場合:

 Begin SQL
    ALTER TABLE Table_1 MODIFY id DISABLE AUTO_INCREMENT;
 End SQL

文字型のuidフィールド[Table_1]に対して"自動UUID"を有効化する場合を考えます:

 Begin SQL
    ALTER TABLE Table_1 MODIFY uid ENABLE AUTO_GENERATE;
 End SQL

オプションを無効化する場合:

 Begin SQL
    ALTER TABLE Table_1 MODIFY uid DISABLE AUTO_GENERATE;
 End SQL



参照 

column_definition
CREATE TABLE
DROP TABLE
foreign_key_definition
primary_key_definition

 
プロパティ 

プロダクト: 4D
テーマ: SQLコマンド

 
履歴 

 
ARTICLE USAGE

SQLリファレンス ( 4D v16)