ALTER TABLE æ–‡

The ALTER TABLE 文�より次�����能��。
  • 表ã?«åˆ—を追加ã?™ã‚‹ã€‚
  • 表ã?«åˆ¶ç´„を追加ã?™ã‚‹ã€‚
  • 表ã?®åˆ—を破棄ã?™ã‚‹ã€‚
  • 表ã?«ã?‚る制約を破棄ã?™ã‚‹ã€‚
  • VARCHAR, CHAR VARYING, and CHARACTER VARYING 列ã?®å¹…を増やã?™ã€‚
  • 表ã?«å®šç¾©ã?•れã?Ÿè¡Œãƒ¬ãƒ™ãƒ«ã?®ãƒ­ãƒƒã‚¯ã‚’上書ã??ã?™ã‚‹ã€‚(ã?‚ã‚‹ã?„ã?¯ä¸Šæ›¸ã??ã?•れã?Ÿå†…容を破棄ã?™ã‚‹ã€‚)
  • 識別å­?列ã?®å¢—分値や開始値を変更ã?™ã‚‹ã€‚
  • 列ã?ŒNullå?¯ã?§ã?‚ã‚‹ã?‹å?¦ã?‹å¤‰æ›´ã?™ã‚‹ã€‚
  • 列ã?®è¦?定値を変更ã?™ã‚‹ã€‚

æ§‹æ–‡

ALTER TABLE 表å??
{
    ADD COLUMN 列定義 |
    ADD CONSTRAINT節 |
    DROP [ COLUMN ] 列å?? [ CASCADE | RESTRICT ]
    DROP { PRIMARY KEY | FOREIGN KEY 制約å?? | UNIQUE 
	 制約å?? | CHECK 制約å?? | CONSTRAINT 制約å?? }
    ALTER [ COLUMN ] 列定義変更 |
    LOCKSIZE { ROW | TABLE }
}

列定義

å?˜ç´”列å?? データ型
[ 列��制約 ]*
[ [ WITH ] DEFAULT 既定制約� ]

既定制約å¼?ã?®è©³ç´°ã?«ã?¤ã?„ã?¦ã?¯ã€?列ã?®æ—¢å®šã‚’å?‚ç…§ã?—ã?¦ã??ã? ã?•ã?„。

列定義変更

列å?? SET DATA TYPE VARCHAR(integer) |
column-name SET INCREMENT BY 定整数 |
column-name RESTART WITH 定整数 |
column-name [ NOT ] NULL |
column-name [ WITH ] DEFAULT 既定値 

列定義変更�SET INCREMENT BY 定整数�より�識別�列��る連続��値�間隔�設定�れ��。識別�列��る次�値��最後��られ�値�増分�加算�れ�値��り��。��場�列���ら���IDENTITY属性�定義�れ����れ��り��ん。

RESTART WITH 定整数ã?«ã‚ˆã‚Šã€?識別å­?列ã?Œã?¨ã‚‹æ¬¡ã?®å€¤ã?Œè¨­å®šã?•れã?¾ã?™ã€‚RESTART WITHã?¯ã€?GENERATED BY DEFAULTã?Œå®šç¾©ã?•れã?Ÿã€?一æ„?キーをæŒ?ã?¤è­˜åˆ¥å­?列ã?®ã?‚る表ã?«ä½¿ã?†ã?¨ä¾¿åˆ©ã?§ã?™ã€‚GENERATED BY DEFAULTã?¯æ˜Žç¤ºçš„ã?«å€¤ã‚’挿入ã?™ã‚‹ã?“ã?¨ã?Šã‚ˆã?³ã€?暗黙的ã?«ã‚·ã‚¹ãƒ†ãƒ ã?Œç™ºç•ªã?—ã?Ÿå€¤ã‚’挿入ã?™ã‚‹ã?“ã?¨ã?®ã?„ã?šã‚Œã‚’も許ã?™ã?Ÿã‚?ã€?明示的ã?«æŒ¿å…¥ã?•れã?Ÿå€¤ã?Œã‚·ã‚¹ãƒ†ãƒ ã?Œç™ºç•ªã?™ã‚‹å€¤ã?¨ã?®é–“ã?§ç«¶å?ˆã?™ã‚‹äº‹ã?Œã?‚りã?ˆã?¾ã?™ã€‚ã?“ã?®ç«¶å?ˆã‚’回é?¿ã?™ã‚‹ã?Ÿã‚?ã?«ã€?RESTART WITHã?«ã‚ˆã‚Šè­˜åˆ¥å­?列ã?§æ¬¡ã?«ç™ºç•ªã?•れる値を設定ã?™ã‚‹äº‹ã?Œã?§ã??ã‚‹ã?®ã?§ã?™ã€‚自動的ã?«ç™ºç•ªã?•れã?Ÿå€¤ã?¨æ‰‹å‹•ã?§æŒ¿å…¥ã?•れã?Ÿæƒ…å ±ã?Œã?‚ã‚‹ã€?次ã?®ä¾‹ã?«ã?¤ã?„ã?¦è€ƒã?ˆã?¦ã?¿ã?¦ã??ã? ã?•ã?„。
CREATE TABLE tauto(i INT GENERATED BY DEFAULT AS IDENTITY, k INT)
CREATE UNIQUE INDEX tautoInd ON tauto(i)
INSERT INTO tauto(k) values 1,2
システム�自動的�識別�列�対��数値を発番���。�����ら�����手動�識別�列�幾���値を挿入���れ��り��ん���。
INSERT INTO tauto VALUES (3,3)
INSERT INTO tauto VALUES (4,4)
INSERT INTO tauto VALUES (5,5)
識別�列����時点�1�ら5�値��り��。�������システム�値を発番��る��システム�3���値を発番���。��値�より一�キー例外�発生���。���ら3���値�既�手動�挿入�れ������る�ら��。手動�値を挿入����後処�����識別�列�対��RESTART WITH 6 �ALTER TABLE文を発行���。
ALTER TABLE tauto ALTER COLUMN i RESTART WITH 6

ALTER TABLE ã?¯è¡¨ã‚’å?‚ç…§ã?™ã‚‹ã?„ã?‹ã?ªã‚‹ãƒ“ューã?«ã‚‚影響ã?—ã?¾ã?›ã‚“。ã?“れã?¯SELECT一覧ã?«"*"ã‚’æŒ?ã?£ã?¦ã?„ã?¦ã‚‚然りã?§ã?™ã€‚æ–°ã?—ã??追加ã?•れã?Ÿåˆ—ã?Œãƒ“ューã?‹ã‚‰è¦‹ã?ˆã‚‹ã‚ˆã?†ã?«ã?™ã‚‹ç‚ºã?«ã?¯ã€?ビューを破棄ã?—ã?¦ä½œã‚Šç›´ã?•ã?ªã?‘れã?°ã?ªã‚Šã?¾ã?›ã‚“。

列�追加

追加ã?™ã‚‹åˆ—ã?®åˆ—定義ã?¯ã€?æ§‹æ–‡ã?®ä¸Šã?§CREATE TABLEæ–‡ã?®åˆ—ã?¨å?Œã?˜ã?§ã?™ã€‚ã?§ã?™ã?‹ã‚‰ã€?列ã?®åˆ¶ç´„ã‚’ALTER TABLE ADD COLUMNæ–‡ã?®æ–°ã?—ã?„列ã?«æ›¸ã??ã?“ã?¨ã‚‚ã?§ã??ã?¾ã?™ã€‚ã?—ã?‹ã?—ã?ªã?Œã‚‰ã€?既存ã?®ãƒ†ãƒ¼ãƒ–ルã?«NOT NULL制約ã?®ã?‚る列を追加ã?™ã‚‹ã?“ã?¨ã?¯ã€?ã??ã?®åˆ—ã?«æ—¢å®šå€¤ã‚’与ã?ˆã?Ÿå ´å?ˆã?®ã?¿å?¯èƒ½ã?§ã?™ã€‚ã?•ã‚‚ã?ªã?‘れã?°ã€?ALTER TABLEæ–‡ã?Œå®Ÿè¡Œã?•れã?Ÿã?¨ã??ã€?例外ã?Œç™ºç”Ÿã?—ã?¾ã?™ã€‚

CREATE TABLEã?¨å?Œæ§˜ã€?列定義ã?«ä¸€æ„?ã?‚ã‚‹ã?„ã?¯ä¸»ã‚­ãƒ¼åˆ¶ç´„ã?Œã?‚ã‚‹å ´å?ˆã€?列ã?¯null値をã?¨ã‚‹ã?“ã?¨ã?Œã?§ã??ã?¾ã?›ã‚“。ã?—ã?Ÿã?Œã?£ã?¦ã€?NOT NULL属性も必è¦?ã?§ã?™ã€‚(SQLSTATE 42831)

注: 表ã?«æ˜Žç¤ºçš„ã?ªåˆ—一覧ã?ŒæŒ‡å®šã?•れã?ªã?„UPDATEトリガã?Œå®šç¾©ã?•れã?¦ã?„ã?Ÿå ´å?ˆã€?ã??ã?®è¡¨ã?«åˆ—を追加ã?™ã‚‹ã?¨ã€?追加ã?•れã?Ÿåˆ—ã?¯UPDATEトリガã?®æš—黙的ã?ªæ›´æ–°åˆ—一覧ã?«è¿½åŠ ã?•れã?¾ã?™ã€‚ã?•らã?«æ–°ã?—ã?„列を拾ã?†ã?“ã?¨ã?Œã?§ã??るよã?†ã€?推移変数ã?¸ã?®å…¨ã?¦ã?®å?‚ç…§ã?¯ç„¡åйã?¨ã?ªã‚Šã?¾ã?™ã€‚

制約�追加

ALTER TABLE ADD CONSTRAINTã?«ã‚ˆã‚Šè¡¨ã?”ã?¨ã?®åˆ¶ç´„ã?Œæ—¢å­˜ã?®è¡¨ã?«è¿½åŠ ã?•れã?¾ã?™ã€‚ã?‚らゆる種類ã?®è¡¨ã?”ã?¨ã?®åˆ¶ç´„ã?ŒALTER TABLEã?§è¿½åŠ ã?§ã??ã?¾ã?™ã€‚ã?Ÿã? ã?—ã€?既存ã?®è¡¨ã?¸ã?®åˆ¶ç´„ã?®è¿½åŠ ã?«ã?¯æ¬¡ã?®æ©Ÿèƒ½ä¸Šã?®åˆ¶é™?ã?Œã?‚りã?¾ã?™ã€‚
  • 外部キーやãƒ?ェック制約ã?Œæ—¢å­˜ã?®è¡¨ã?«è¿½åŠ ã?•れるã?¨ã??Derbyã?¯æ—¢å­˜ã?®è¡Œã?Œåˆ¶ç´„ã?«é?•å??ã?—ã?ªã?„ã?‹ã€?表を調ã?¹ã?¾ã?™ã€‚ã‚‚ã?—ã?„ã?šã‚Œã?‹ã?®è¡Œã?Œåˆ¶ç´„ã?«é?•å??ã?™ã‚‹å ´å?ˆã€?Derbyã?¯ä¾‹å¤–を投ã?’ã?¦åˆ¶ç´„ã?¯è¿½åŠ ã?•れã?¾ã?›ã‚“。
  • 主キーã?«å?«ã?¾ã‚Œã‚‹ã?‚らゆる列ã?¯nullã?§ã?ªã?„値をã?¨ã‚‰ã?ªã?‘れã?°ã?ªã‚‰ã?šã€?ã?¾ã?Ÿä¸€æ„?ã?§ã?ªã?‘れã?°ã?ªã‚Šã?¾ã?›ã‚“。

    ALTER TABLE ADD UNIQUEã‚„PRIMARY KEYã?¯ã€?å?˜ä¸€ã?®åˆ—ã?«ã‚ˆã‚‹ä¸»ã‚­ãƒ¼ã‚’定義ã?™ã‚‹ç°¡å?˜ã?ªæ–¹æ³•ã‚’æ??ä¾›ã?—ã?¾ã?™ã€‚ã‚‚ã?—PRIMARY KEYã?ŒCã?¨ã?„ã?†åˆ—ã?®å®šç¾©ã?«æ›¸ã?‹ã‚Œã?Ÿã?•れã?Ÿå ´å?ˆã€?ã?“れã?¯PRIMARY KEY(C)ã?¨ã?„ã?†åˆ¥ã?®ç¯€ã?«æ›¸ã?„ã?Ÿã?®ã?¨å?Œã?˜ã?§ã?™ã€‚列ã?¯nullã?®å€¤ã‚’ã?¨ã?£ã?¦ã?¯ã?ªã‚‰ã?ªã?„ã?®ã?§ã€?NOT NULL属性も指定ã?•れã?ªã?‘れã?°ã?ªã‚Šã?¾ã?›ã‚“。

制約ã?®æ§‹æ–‡ã?«ã?¤ã?„ã?¦ã?®è©³ç´°ã?¯ã€?CONSTRAINT 節を読んã?§ã??ã? ã?•ã?„。 ADD TABLE ADD CONSTRAINTã?¨ã?„ã?†æ›¸ã??æ–¹ã?«ã?¦ã€?制約を追加ã?™ã‚‹å ´å?ˆã?¯ã€?表毎ã?®åˆ¶ç´„ã?®æ§‹æ–‡ã?«å¾“ã?£ã?¦ã??ã? ã?•ã?„。

列�破棄

ALTER TABLE DROP COLUMNã?«ã‚ˆã‚Šã€?表ã?‹ã‚‰åˆ—を破棄ã?§ã??ã?¾ã?™ã€‚

COLUMNã?¨ã?„ã?†ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã?¯ç„¡ã??ã?¦ã‚‚ã?‹ã?¾ã?„ã?¾ã?›ã‚“。

CASCADEã‚„RESTRICTã‚‚ã€?ç„¡ã??ã?¦ã?‹ã?¾ã?„ã?¾ã?›ã‚“。ã?©ã?¡ã‚‰ã‚‚指定ã?—ã?ªã?‹ã?£ã?Ÿå ´å?ˆã€?既定ã?¯CASCADEã?§ã?™ã€‚

RESTRICT�場���存���るスキーマ�情報�無効��る�ら��列�破棄�失敗���。

CASCADE�場��列�破棄�併���無効��るスキーマ�情報も破棄�れ��。

DROP COLUMN RESTRICT�失敗�る原因��るスキーマ�情報���次���れ��。 ビュー�トリガ�主キー制約�外部キー制約�一�キー制約��ェック制約�列権�。破棄�る列��存�る��れ��情報��れ��DROP COLUMN RESTRICT�失敗���。

表ã?«ã?²ã?¨ã?¤ã?—ã?‹ã?ªã?„列ã?¯ã€?破棄ã?™ã‚‹ã?“ã?¨ã?Œã?§ã??ã?¾ã?›ã‚“。

sqlAuthorizationã?ŒçœŸã?§ã?‚ã‚‹å ´å?ˆã€?列を削除ã?™ã‚‹ã?“ã?¨ã?¯ã?§ã??ã?¾ã?›ã‚“。(DERBY-1909ã‚’å?‚ç…§ã?—ã?¦ã??ã? ã?•ã?„。) )

列ã?Œç´¢å¼•ã?«ã?¦ä½¿ã‚?れã?¦ã?„ã‚‹ã?‹å?¦ã?‹ã?«ã?‹ã?‹ã‚?らã?šã€?列ã?®ç ´æ£„ã?¯CASCADE/RESTRICTã?®ã?©ã?¡ã‚‰ã?§ã‚‚å?Œã?˜ã‚ˆã?†ã?«è¡Œã‚?れã?¾ã?™ã€‚列ã?Œç ´æ£„ã?•れるã?¨ã??ã€?索引ã?«ã?‚ã‚‹ã??ã?®åˆ—ã?Œå?–り除ã?‹ã‚Œã?¾ã?™ã€‚ã??ã?®åˆ—ã?Œç´¢å¼•ã?«ã?‚ã‚‹ã?Ÿã? ã?²ã?¨ã?¤ã?®åˆ—ã?§ã?‚ã?£ã?Ÿå ´å?ˆã€?索引全体ã?Œç ´æ£„ã?•れã?¾ã?™ã€‚

制約�破棄

ALTER TABLE DROP CONSTRAINTã?«ã‚ˆã‚Šè¡¨ã?®åˆ¶ç´„を破棄ã?§ã??ã?¾ã?™ã€‚å??å‰?付ã?‘ã?—ã?¦ã?„ã?ªã?„制約を破棄ã?™ã‚‹ã?Ÿã‚?ã?«ã?¯ã€?SYS.SYSCONSTRAINTSã?«è¨˜éŒ²ã?•れã?¦ã?„る自動生æˆ?ã?•れã?Ÿåˆ¶ç´„ã?®å??å‰?をデリミトã?•れã?Ÿè­˜åˆ¥å­?ã?¨ã?—ã?¦æŒ‡å®šã?™ã‚‹å¿…è¦?ã?Œã?‚りã?¾ã?™ã€‚

主キー・一æ„?性・外部キー制約を破棄ã?™ã‚‹ã?¨ã€?ã??ã?®åˆ¶ç´„ã?Œæ©Ÿèƒ½ã?™ã‚‹ã?Ÿã‚?ã?«å­˜åœ¨ã?—ã?¦ã?„る索引ã?Œç ´æ£„ã?•れã?¾ã?™ã€‚(ã?“ã?®ç´¢å¼•ã?¯æ”¯æ?´ç´¢å¼•ã?¨ã‚‚呼ã?°ã‚Œã?¾ã?™ã€‚)

列�変更

列定義変更ã?«ã‚ˆã‚Šã€?å??å‰?ã?®ã?‚る列を変更ã?§ã??ã?¾ã?™ã€‚å?¯èƒ½ã?ªå¤‰æ›´å†…容ã?¯ä»¥ä¸‹ã?®ã?¨ã?Šã‚Šã?§ã?™ã€‚
  • VARCHAR列ã?®é•·ã?•を増やã?™ã?“ã?¨ã?Œã?§ã??ã?¾ã?™ã€‚VARCHARã?¨ã?„ã?†ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã?®ä»£ã‚?りã?«ã€?CHARACTER VARYINGã‚„CHAR VARYINGを使ã?†ã?“ã?¨ã?Œã?§ã??ã?¾ã?™ã€‚

    ã?“れらã?®åˆ—ã?®å¹…を増やã?™ã?Ÿã‚?ã?«ã?¯ã€?データ型ã?¨æ–°ã?—ã?„サイズを列å??ã?®å¾Œã?«æ›¸ã??ã?¾ã?™ã€‚

    列ã?®å¹…を減らã?—ã?Ÿã‚Šã€?データ型を変更ã?—ã?Ÿã‚Šã?™ã‚‹äº‹ã?¯ã?§ã??ã?¾ã?›ã‚“。主キーã?®ä¸€éƒ¨ã‚„ã€?外部キー制約ã?‹ã‚‰å?‚ç…§ã?•れã?¦ã?„る一æ„?キーã€?外部キー制約ã?®ä¸€éƒ¨ã?§ã?‚る列ã?®å¹…ã?¯å¤‰æ›´ã?§ã??ã?¾ã?›ã‚“。

  • 識別å­?列ã?®ã?¨ã‚‹é€£ç¶šã?—ã?Ÿå€¤ã?®é–“隔を指定ã?™ã‚‹ã?“ã?¨ã?Œã?§ã??ã?¾ã?™ã€‚

    識別�列��る連続��値�間隔を設定�る�����定整数を与���。�ら���列��識別�属性�与�られ����れ��り��ん。(SQLSTATE 42837)も�表�既�行��る場��列�SET INCREMENT default�加算�れ�値�変更�れ��ん。

  • 列ã?®Nullã?¸ã?®åˆ¶ç´„ã?®å¤‰æ›´ 列ã?ŒNullã‚’ã?¨ã‚‹äº‹ã?¸ã?®åˆ¶ç´„を変更ã?§ã??ã?¾ã?™ã€‚

    NOT NULL制約を既存ã?®åˆ—ã?«ä¸Žã?ˆã‚‹ã?“ã?¨ã?Œã?§ã??ã?¾ã?™ã€‚ã?“れを行ã?†å ´å?ˆã€?既存ã?®NULL値ã?Œè¡¨ã?®ã??ã?®åˆ—ã?«å­˜åœ¨ã?—ã?¦ã?¯ã?ªã‚Šã?¾ã?›ã‚“。

    NOT NULL制約を既存ã?®åˆ—ã?‹ã‚‰å?–り除ã??ã?“ã?¨ã?Œã?§ã??ã?¾ã?™ã€‚ã?“れを行ã?†å ´å?ˆã€?ã??ã?®åˆ—ã?ŒPRIMARY KEYã‚„UNIQUEã?®åˆ¶ç´„ã?«ã?¦ä½¿ã‚?れã?¦ã?„る列ã?§ã?‚ã?£ã?¦ã?¯ã?ªã‚Šã?¾ã?›ã‚“。

  • 列ã?®æ—¢å®šå€¤ã‚’変更ã?™ã‚‹

既定値�設定

æ–°è¦?ã?®åˆ—ã?«æ—¢å®šå€¤ã‚’与ã?ˆã‚‹ã?“ã?¨ã?Œã?§ã??ã?¾ã?™ã€‚既定値ã?¨ã?¯å€¤ã?ŒæŒ‡å®šã?•れã?ªã?‹ã?£ã?Ÿå ´å?ˆã?«åˆ—ã?«æŒ¿å…¥ã?•れる値ã?§ã?™ã€‚ã‚‚ã?—明示的ã?«æ—¢å®šå€¤ã?Œä¸Žã?ˆã‚‰ã‚Œã?¦ã?„ã?ªã?‹ã?£ã?Ÿå ´å?ˆã€?列ã?®æ—¢å®šå€¤ã?¯NULLã?§ã?™ã€‚ã‚‚ã?—æ–°ã?—ã?„列ã?«æ—¢å®šå€¤ã‚’与ã?ˆã?Ÿå ´å?ˆã€?表ã?«ã?‚る既存ã?®è¡Œã?¯ã??ã?®æ–°åˆ—ã?«æ—¢å®šå€¤ã‚’ã?¨ã‚‹ã?“ã?¨ã?¨ã?ªã‚Šã?¾ã?™ã€‚

既定値ã?®ã‚ˆã‚Šè©³ç´°ã?ªæƒ…å ±ã?«ã?¤ã?„ã?¦ã?¯ã€?CREATE TABLE 文をå?‚ç…§ã?—ã?¦ã??ã? ã?•ã?„。

表�ロック粒度�変更

ã‚‚ã?—ã?‚ã?ªã?Ÿã?®ã‚·ã‚¹ãƒ†ãƒ ã?Œæ—¢å®šã?®è¨­å®šã?§ã?‚る行毎ã?®ãƒ­ãƒƒã‚¯ã‚’行ã?†ã?®ã?§ã?‚れã?°ã€?LOCKSIZE節ã?«ã‚ˆã‚Šè¡¨ã?®è¡Œæ¯Žã?®ãƒ­ãƒƒã‚¯ã‚’上書ã??ã?™ã‚‹ã?“ã?¨ã?Œã?§ã??ã?¾ã?™ã€‚(一方ã?‚ã?ªã?Ÿã?®ã‚·ã‚¹ãƒ†ãƒ ã?Œè¡¨ã?”ã?¨ã?®ãƒ­ãƒƒã‚¯ã‚’行ã?†ã‚ˆã?†è¨­å®šã?•れã?¦ã?„ã‚‹å ´å?ˆã€?Derbyã?ŒLOCKSIZE節ã?«å¯¾ã?—ã?¦ä¾‹å¤–を投ã?’ã?ªã?‹ã?£ã?Ÿã?¨ã?—ã?¦ã‚‚ã€?ロックã?®ç²’度を行å?˜ä½?ã?®ãƒ­ãƒƒã‚¯ã?«å¤‰æ›´ã?™ã‚‹ã?“ã?¨ã?¯ã?§ã??ã?¾ã?›ã‚“。) 表ã?®è¡Œæ¯Žã?®ãƒ­ãƒƒã‚¯ã‚’上書ã??ã?™ã‚‹ã?«ã?¯ã€?表ã?«ãƒ­ãƒƒã‚¯ã?®è¨­å®šã‚’行ã?„ã?¾ã?™ã€‚ ã‚‚ã?—表ã?Œè¡¨æ¯Žã?®ãƒ­ãƒƒã‚¯ã?§ä½œæˆ?ã?•れã?Ÿå ´å?ˆã€?ALTER TABLEæ–‡ã?«ã?¦LOCKSIZE節を使ã?†ã?“ã?¨ã?§ã€?ã??ã?®è¨­å®šã‚’行毎ã?®è¨­å®šã?«æˆ»ã?™ã?“ã?¨ã?Œã?§ã??ã?¾ã?™ã€‚ã?“れã?Œä¾¿åˆ©ã?ªå ´å?ˆã‚‚ã?‚ã‚‹ã?®ã?§ã?™ã?Œã€?ã??ã?®è©³ç´°ã?«ã?¤ã?„ã?¦ã?¯ã€?Derbyã?®ãƒ?ューニングをå?‚ç…§ã?—ã?¦ã??ã? ã?•ã?„。

例

-- 既存�表�列���制約��る列を追加�る。
-- 表�既存行����場��既存行�新列�NULLを�る���
-- 例外�発生�る。
ALTER TABLE CITIES ADD COLUMN REGION VARCHAR(26)
CONSTRAINT NEW_CONSTRAINT CHECK (REGION IS NOT NULL);

-- 既存�表�一�性制約を追加�る。
-- �複��キー����場��例外�発生�る。
ALTER TABLE SAMP.DEPARTMENT
ADD CONSTRAINT NEW_UNIQUE UNIQUE (DEPTNO);

-- Cities表�外部キー制約を追加�る。
-- 行�制約を満���検証�れ��
-- も�制約を満����行�見����場��
-- 制約�追加�れ��。
ALTER TABLE CITIES ADD CONSTRAINT COUNTRY_FK
Foreign Key (COUNTRY) REFERENCES COUNTRIES (COUNTRY);

-- 主キー制約を表�追加�る。
-- 最��表�作��れる。
CREATE TABLE ACTIVITIES (CITY_ID INT NOT NULL,
SEASON CHAR(2), ACTIVITY VARCHAR(32) NOT NULL);
-- も�主キー���列�nullや�複��値��る場��
-- ã?“ã?®åˆ¶ç´„を追加ã?™ã‚‹ã?“ã?¨ã?¯ã?§ã??ã?ªã?„。
ALTER TABLE Activities ADD PRIMARY KEY (city_id, activity);

-- も��存�る情報�無�れ��city_id列�破棄�れる。
ALTER TABLE Cities DROP COLUMN city_id RESTRICT;
-- �存�る情報�併���city_id列�破棄�れる。
ALTER TABLE Cities DROP COLUMN city_id CASCADE;

-- CITIES表�主キー制約を破棄�る。
ALTER TABLE Cities DROP CONSTRAINT Cities_PK;
-- CITIES表�外部キー制約を破棄�る。
ALTER TABLE Cities DROP CONSTRAINT COUNTRIES_FK;
-- 既定値を1��るDEPTNO列を追加�る。
ALTER TABLE SAMP.EMP_ACT ADD COLUMN DEPTNO INT DEFAULT 1;
-- VARCHAR型�列幅を増や�。
ALTER TABLE SAMP.EMP_PHOTO ALTER PHOTO_FORMAT SET DATA TYPE VARCHAR(30);
-- 表�ロック粒度を変更�る。
ALTER TABLE SAMP.SALES LOCKSIZE TABLE;

-- MANAGER列�NOT NULL制約を破棄�る。
ALTER TABLE Employees ALTER COLUMN Manager NULL;
-- SSN列�NOT NULL制約を追加�る。
ALTER TABLE Employees ALTER COLUMN ssn NOT NULL;

-- SALARY列�既定値を変更�る。
ALTER TABLE Employees ALTER COLUMN Salary DEFAULT 1000.0

文��果

ALTER TABLE 文�より変更�る表��存�る全��文��次回�実行���コンパイル�れ��。も�変更�る表を�照�る�開��カーソル��る場��ALTER TABLE�許��れ��ん。