9

データベース テーブルの 1 つに列を追加しようとしていますが、構文エラーがあり、問題が見つからないようです...

現在のデータベース テーブルは次のようになります。

component   +  tag_id  +  item_id
------------|----------|-----------
com_content |    23    |    2642
com_content |    26    |    3481
com_content |    35    |    1868
com_content |    85    |    5827
com_content |    89    |    7882

「id」は自動インクリメントで、すべての列は主キーの一部です。

 id  +  component   +  tag_id  +  item_id
-----|--------------|----------|-----------
  1  |  com_content |    23    |    2642
  2  |  com_content |    26    |    3481
  3  |  com_content |    35    |    1868
  4  |  com_content |    85    |    5827
  5  |  com_content |    89    |    7882

これは私のクエリです:

DROP PRIMARY KEY
ALTER TABLE gitags_items
ADD COLUMN id INT NOT NULL AUTO_INCREMENT FIRST
PRIMARY KEY (id,component,tag_id,item_id)

ただし、次のエラー メッセージが表示されます。

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'PRIMARY KEY ALTER TABLE gitags_items ADD COLUMN id INT NOT NULL AUTO_INC' at line 1

ヘルプ/ポインターをいただければ幸いです

4

4 に答える 4

18

「ALTER TABLE」ビットが最初に来る必要があり、次に各部分をコンマで区切る必要があります。

ALTER TABLE gitags_items
DROP PRIMARY KEY,
ADD COLUMN id INT NOT NULL AUTO_INCREMENT FIRST,
ADD PRIMARY KEY (id,component,tag_id,item_id);

しかし、同じステートメントで主キーを削除して作成できるかどうかはわかりません。

于 2013-11-13T09:52:06.513 に答える
2

これは正常に機能します。コンマに問題がありました。自分で設定するので、主キーを削除する必要はありません

ALTER TABLE gitags_items ADD id INT NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY(id,component,tag_id,item_id);
于 2015-08-19T21:20:17.860 に答える