21 Ocak 2010, PERŞEMBE
Kaldırmak MySQL Birincil Anahtar
Hangi şema haritalar canlı bir MySQL veritabanı izinleri için user_customers Aşağıdaki tablo var:
mysql> describe user_customer_permission;
------------------ --------- ------ ----- --------- ----------------
| Field | Type | Null | Key | Default | Extra |
------------------ --------- ------ ----- --------- ----------------
| id | int(11) | NO | PRI | NULL | auto_increment |
| user_customer_id | int(11) | NO | PRI | NULL | |
| permission_id | int(11) | NO | PRI | NULL | |
------------------ --------- ------ ----- --------- ----------------
3 rows in set (0.00 sec)
User_customer_id için birincil anahtarları ve ve kimliği birincil anahtar permission_id korumak istiyorum.
Komutu çalıştırdığımda:
alter table user_customer_permission drop primary key;
Aşağıdaki hatayı alıyorum:
ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key
Nasıl bir sütun birincil anahtar bırakabilir miyim?
CEVAP
21 Ocak 2010, PERŞEMBE
Bir dizin olmaksızın, otomatik artış bir sütun bakımı çok pahalı olur, o MySQL
otomatik artış bir sütun dizin en soldaki bir parçası olmayı gerektirir.
Anahtar bırakarak önce otomatik artış özelliğini kaldırmanız gerekir:
ALTER TABLE user_customer_permission MODIFY id INT NOT NULL;
ALTER TABLE user_customer_permission DROP PRIMARY KEY;
Her üç sütun kapsayan PRIMARY KEY
kompozit var id
benzersiz olmasını garanti edilmez unutmayın.
Eğer benzersiz olmak öyle bir şey olursa, PRIMARY KEY
ve AUTO_INCREMENT
tekrar yapabilirsiniz:
ALTER TABLE user_customer_permission MODIFY id INT NOT NULL PRIMARY KEY AUTO_INCREMENT;
Bunu Paylaş:
Mevcut mysql veritabanı için birincil ...
MySQL:/Sıfırlama otomatik artan birinc...
Birincil anahtar MySQL otomatik olarak...
Nasıl düzgün bir bileşik birincil anah...
Arasındaki fark anahtar, Birincil Anah...