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

  • Britec09

    Britec09

    4 Mart 2009
  • Greater Than Gatsby Photoshop Actions & Lightroom Presets

    Greater Than

    11 ŞUBAT 2013
  • The10HourMan

    The10HourMan

    28 EYLÜL 2012