テーブルに複数の列を追加する必要がありますが、列の位置は の後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構文にエラーがあります。 7行目でnear ')AFTER
lastname
'を使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。
このようなクエリでAFTERを使用する方法を教えてください。
これを試して
ALTER TABLE users
ADD COLUMN `count` SMALLINT(6) NOT NULL AFTER `lastname`,
ADD COLUMN `log` VARCHAR(12) NOT NULL AFTER `count`,
ADD COLUMN `status` INT(10) UNSIGNED NOT NULL AFTER `log`;
特定のフィールドの後に単一の列を追加したい場合は、次の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 が実際にテーブルに追加する最初の列になります。
例:count
、log
、status
をlastname
の後に正確な順序で追加したい場合、実際の構文は次のようになります。
ALTER TABLE users
ADD COLUMN log VARCHAR(12) NOT NULL,
ADD COLUMN status INT(10) UNSIGNED NOT NULL,
ADD COLUMN count SMALLINT(6) NOT NULL
AFTER lastname
これは正しいです。
ALTER TABLE `users`
ADD COLUMN `count` SMALLINT(6) NOT NULL AFTER `lastname`,
ADD COLUMN `log` VARCHAR(12) NOT NULL AFTER `count`,
ADD COLUMN `status` INT(10) UNSIGNED NOT NULL AFTER `log`;
ADD COLUMN
を使用してコンマで複数の列名を言及することはできません。新しい列を定義するたびにADD COLUMN
に言及する必要があります。
ALTER TABLE users
ADD COLUMN COLUMN NAME
DATATYPE(SIZE)EXISTING COLUMN NAME
の後。
あなたはこれでそれをすることができます、私のためにうまく働きます。
1つの可能性は、テーブル内の列の並べ替えを気にせず、単に列を追加して変更することです。次に、順序が本当に重要であると仮定して、必要な順序で列を持つビューを作成します。あなたが望む任意の順序を反映するようにビューを簡単に変更することができます。順序がプログラム上のアプリケーションにとって重要であるとは想像できないので、ビューは重要であるかもしれない手動のクエリに対して十分であるべきです。
デフォルト値0で私のために働いた解決策は次のとおりです
ALTER TABLE reservations ADD COLUMN isGuest BIT DEFAULT 0
これは私にとってはうまくいきます:
ALTER TABLE 'users'
ADD COLUMN 'count' SMALLINT(6) NOT NULL AFTER 'lastname',
ADD COLUMN 'log' VARCHAR(12) NOT NULL AFTER 'count',
ADD COLUMN 'status' INT(10) UNSIGNED NOT NULL AFTER 'log';