Kaldırmak MySQL Birincil Anahtar | Netgez.com
SORU
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ÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VÄ°DEO

Rastgele Yazarlar

  • 24 Канал

    24 КанаÐ

    5 ÅžUBAT 2006
  • FailArmy U

    FailArmy U

    29 AÄžUSTOS 2009
  • KittiesMama

    KittiesMama

    10 AÄžUSTOS 2008