ALTER TABLE table alter-table-action
where alter-table-action is one of the following:
ADD add-action
DROP drop-action
DELETE drop-action
ALTER [COLUMN] identifier alter-column-action
MODIFY modification-spec
add-action ::=
[CONSTRAINT table]
[(] FOREIGN KEY identifier (identifier-commalist)
REFERENCES table (identifier-commalist)
[triggered-action] [)]
|
[(] UNIQUE (identifier-commalist)
|
[(] PRIMARY KEY identifier (identifier-commalist) [)]
|
DEFAULT [(] default-spec [)] FOR identifier
|
[COLUMN] [(] identifier datatype
{%ALPHAUP | %EXACT | %SQLSTRING [(literal)] |
%SQLUPPER [(literal)] | %UPPER | %STRING [(literal)] |
%DESCRIPTION literal | DEFAULT [(] default-spec [)] |
field-constraint
} [)]
drop-action ::=
FOREIGN KEY identifier |
PRIMARY KEY |
CONSTRAINT identifier |
[COLUMN] identifier [RESTRICT | CASCADE]
alter-column-action ::=
SET DEFAULT [(]default-spec[)] |
DEFAULT [(]default-spec[)] |
DROP DEFAULT |
NULL |
NOT NULL |
datatype
modification-spec ::=
identifier [datatype]
[DEFAULT [(]default-spec[)]]
[CONSTRAINT identifier] [NULL] [NOT NULL]
既存のフィールドに主キー制約を追加する場合、対応する IDKey インデックスの定義は、
SET OPTION PKEY_IS_IDKEY 文、
Caché 構成マネージャの設定、およびデータの存在で決まります。[詳細] タブの [SQL] オプションを展開し、
[DDL 経由で作成された主キーが ID キー] に設定されている現在の値を表示します。このオプションが [はい] に設定されていて、このフィールドにデータがない場合、主キー・インデックスは IDKey インデックスとしても定義されます。このオプションが [はい] に設定されていて、このフィールドにデータが
ある場合、IDKey インデックスは定義されません。
&sql(CREATE TABLE Sample.PTest (
Id INT NOT NULL,
Name VARCHAR(35),
DOB DATE,
CONSTRAINT PTestPK PRIMARY KEY (Id) )
)
WRITE !,"Created table, SQLCODE=",SQLCODE
&sql(INSERT INTO Sample.PTest (Id, Name, DOB)
VALUES (1, 'David Vanderbilt', 46639))
WRITE !,"Inserted data in table, SQLCODE=",SQLCODE
&sql(INSERT INTO Sample.PTest (Id, Name, DOB)
VALUES (2, 'Mary Smith', 49759))
WRITE !,"Inserted data in table, SQLCODE=",SQLCODE
&sql(ALTER TABLE Sample.PTest
ADD COLUMN FavoriteColor %String NOT NULL DEFAULT 'Blue')
WRITE !,"Altered table, SQLCODE=",SQLCODE