テーブルに複数のカラムを追加したいのですが、lastname
というカラムの**後にカラムを配置する必要があります。
私は次のことを試みました。
ALTER TABLE `users` ADD COLUMN
(
`count` smallint(6) NOT NULL,
`log` varchar(12) NOT NULL,
`status` int(10) unsigned NOT NULL
)
AFTER `lastname`;
このエラーが出ます。
SQLの構文に誤りがありますので、お使いのMySQLサーバーのバージョンに応じたマニュアルをご確認ください。 MySQLサーバのバージョンに対応するマニュアルを確認してください。
7行目の ') の近くにAFTER
lastname
' at line 7
このようなクエリでAFTERを使用するにはどうすればよいのでしょうか?
特定のフィールドの後に単一のカラムを追加したい場合は、以下のMySQLクエリが有効です。
ALTER TABLE users
ADD COLUMN count SMALLINT(6) NOT NULL
AFTER lastname
複数のカラムを追加したい場合には、カラムごとに 'ADD'コマンドを使用する必要があります。このためのMySQLクエリは以下の通りです。
ALTER TABLE users
ADD COLUMN count SMALLINT(6) NOT NULL,
ADD COLUMN log VARCHAR(12) NOT NULL,
ADD COLUMN status INT(10) UNSIGNED NOT NULL
AFTER lastname
2つ目の方法では、最後の ADD COLUMN
column は、実際にはテーブルに追加したい最初のカラムでなければなりません。
例: lastname
の後に count
, log
, status
を正確な順序で追加したい場合、実際の構文は以下のようになります。
ALTER TABLE users
ADD COLUMN log VARCHAR(12) NOT NULL AFTER lastname,
ADD COLUMN status INT(10) UNSIGNED NOT NULL AFTER lastname,
ADD COLUMN count SMALLINT(6) NOT NULL AFTER lastname