[DBFLUTE-590] {Env}: ALTER文のDBごとの文法をまとめる Created: 2009-10-30  Updated: 2011-01-21  Resolved: 2011-01-21

Status: Closed
Project: DBFlute
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Task Priority: Major
Reporter: jflute Assignee: jflute
Resolution: Fixed Votes: 0
Labels: None


 Description   

[Overview]
DBFLUTE-588の関連タスク

表に列を追加する。

[Specification]
<Scope>
A. テーブルのカラムを追加する。
B. カラムを削除する。
C. カラム名を変更する。
D. カラムの型(サイズ)を変更する。
E. テーブルの制約(PK, FK, UQ, Identity, Index)を付与する。
F. テーブルの制約(PK, FK, UQ, Identity, Index)を削除する。
G. テーブルの制約(PK, FK, UQ, Identity, Index)の内容を変更する。
H. カラムの制約(NotNull, Default)を付与する。
I. カラムの制約(NotNull, Default)を削除する。
J. カラムの制約(NotNull, Default)の内容を変更する。

<Basic>
http://www.ocelot.ca/commands.htm

ALTER TABLE table-name 
... ADD [COLUMN] column-name column-definition 
... ADD constraint-definition 
... ALTER [COLUMN] column-name SET 
... ALTER [COLUMN] column-name DROP 
... ALTER [COLUMN] column-name RESTART 
... DROP COLUMN column-name 
... DROP CONSTRAINT constraint-name 
... DROP FOREIGN KEY foreign-key-name 
... DROP PRIMARY KEY primary-key-name

<MySQL>
http://dev.mysql.com/doc/refman/5.1/ja/alter-table.html

ALTER [IGNORE] TABLE tbl_name
    alter_specification [, alter_specification] ...

alter_specification:
    table_option ...
  | ADD [COLUMN] column_definition [FIRST | AFTER col_name ]
  | ADD [COLUMN] (column_definition,...)
  | ADD {INDEX|KEY} [index_name] [index_type] (index_col_name,...)
  | ADD [CONSTRAINT [symbol]]
        PRIMARY KEY [index_type] (index_col_name,...)
  | ADD [CONSTRAINT [symbol]]
        UNIQUE [INDEX|KEY] [index_name] [index_type] (index_col_name,...)
  | ADD FULLTEXT [INDEX|KEY] [index_name] (index_col_name,...)
      [WITH PARSER parser_name]
  | ADD SPATIAL [INDEX|KEY] [index_name] (index_col_name,...)
  | ADD [CONSTRAINT [symbol]]
        FOREIGN KEY [index_name] (index_col_name,...)
        [reference_definition]
  | ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}
  | CHANGE [COLUMN] old_col_name column_definition
        [FIRST|AFTER col_name]
  | MODIFY [COLUMN] column_definition [FIRST | AFTER col_name]
  | DROP [COLUMN] col_name
  | DROP PRIMARY KEY
  | DROP {INDEX|KEY} index_name
  | DROP FOREIGN KEY fk_symbol
  | DISABLE KEYS
  | ENABLE KEYS
  | RENAME [TO] new_tbl_name
  | ORDER BY col_name [, col_name] ...
  ...

o table_optionの中でAUTO_INCREMENT(Identity)の指定が可能。

<PostgreSQL>
http://www.postgresql.jp/document/pg721doc/reference/sql-altertable.html

ALTER TABLE [ ONLY ] table [ * ]
    ADD [ COLUMN ] column type [ column_constraint [ ... ] ]
ALTER TABLE [ ONLY ] table [ * ]
    ALTER [ COLUMN ] column { SET DEFAULT value | DROP DEFAULT }
ALTER TABLE [ ONLY ] table [ * ]
    ALTER [ COLUMN ] column SET STATISTICS integer
ALTER TABLE [ ONLY ] table [ * ]
    RENAME [ COLUMN ] column TO newcolumn
ALTER TABLE table
    RENAME TO new_table
ALTER TABLE table
    ADD table_constraint_definition
ALTER TABLE [ ONLY ] table 
	DROP CONSTRAINT constraint { RESTRICT | CASCADE }
ALTER TABLE table
	OWNER TO new_owner

<Oracle>

<DB2>

<SQLServer>

<H2>
http://www.h2database.com/html/grammar.html?highlight=alter&search=alter#firstFound

ALTER TABLE ADD
ALTER TABLE ADD CONSTRAINT
ALTER TABLE ALTER
ALTER TABLE DROP COLUMN
ALTER TABLE DROP CONSTRAINT
ALTER TABLE SET
ALTER TABLE RENAME

<Derby>

http://db.apache.org/derby/docs/dev/ja_JP/ref/rrefsqlj81859.html
ALTER TABLE 表名
{
    ADD COLUMN 列定義 |
    ADD CONSTRAINT節 |
    DROP [ COLUMN ] 列名 [ CASCADE | RESTRICT ]
    DROP { PRIMARY KEY | FOREIGN KEY 制約名 | UNIQUE 
	 制約名 | CHECK 制約名 | CONSTRAINT 制約名 }
    ALTER [ COLUMN ] 列定義変更 |
    LOCKSIZE { ROW | TABLE }
}


 Comments   
Comment by jflute [ 2011-01-21 ]

しばらく、この情報は利用しないため、一旦クローズ。
今後、ALTER文に対する課題が出て来たときにまた利用する。
(情報提供ありがとうございました)

Comment by jflute [ 2009-10-31 ]

ありがとうございます。
大分助かります。

Comment by skirnir [ 2009-10-31 ]

Derby:

http://db.apache.org/derby/docs/dev/ja_JP/ref/rrefsqlj81859.html

Comment by skirnir [ 2009-10-31 ]

SQL92/99:

http://www.ocelot.ca/commands.htm

Comment by skirnir [ 2009-10-31 ]

PostgreSQL 7.2.3:

http://www.postgresql.jp/document/pg721doc/reference/sql-altertable.html

Comment by skirnir [ 2009-10-31 ]

MySQL 5.1:

http://dev.mysql.com/doc/refman/5.1/ja/alter-table.html

Comment by skirnir [ 2009-10-31 ]

H2:

http://www.h2database.com/html/grammar.html?highlight=alter&search=alter#alter_index_rename

Generated at Mon Dec 15 10:32:35 JST 2025 using Jira 10.6.1#10060001-sha1:a6461e220f274b29ced7ac9295492f2465fe5ef5.