У меня есть таблица в MySQL, который имеет первичный ключ:
mysql> desc gifts;
+---------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------+-------------+------+-----+---------+-------+
| giftID | int(11) | NO | PRI | NULL | |
| name | varchar(80) | YES | | NULL | |
| filename | varchar(80) | YES | | NULL | |
| effectiveTime | datetime | YES | | NULL | |
+---------------+-------------+------+-----+---------+-------+
но я хотел сделать это auto_increment.
Следующее утверждение перестало работать. Как это может быть изменено так, чтобы это могло работать?спасибо
mysql> alter table gifts modify giftID int primary key auto_increment;
ERROR 1068 (42000): Multiple primary key defined
Не использовать атрибут первичного ключа
:
ALTER TABLE gifts MODIFY giftID INT AUTO_INCREMENT;
Определенные атрибуты столбца, такие как ПЕРВИЧНЫЙ КЛЮЧ
, aren Не столько свойства столбца, сколько ярлыки для других вещей. Столбец с пометкой PRIMARY KEY
, например, помещается в индекс PRIMARY
.Более того, всем столбцам индекса PRIMARY
присваивается атрибут NOT NULL
. (Кроме того: чтобы иметь первичный ключ с несколькими столбцами, необходимо использовать отдельное условие ограничения, а не несколько атрибутов столбца PRIMARY KEY
.) Поскольку столбец уже находится в индексе PRIMARY
, вам не нужно указывать его снова при изменении столбца. Попробуйте ПОКАЗАТЬ СОЗДАТЬ ТАБЛИЦУ подарки;
, чтобы увидеть, как влияет использование атрибута ПЕРВИЧНЫЙ КЛЮЧ
.