2009-05-29 17 views
111

:KEY anahtar kelimesi ne anlama geliyor? Bu tablo tanımda

CREATE TABLE groups (
    ug_main_grp_id smallint NOT NULL default '0', 
    ug_uid smallint default NULL, 
    ug_grp_id smallint default NULL, 
    KEY (ug_main_grp_id) 
); 

KEY kelime anlamı nedir? Bu bir birincil anahtar değil, bir ön anahtar değil, sadece bir endeks mi? Öyleyse, KEY ile oluşturulan bu tür bir dizinin özelliği nedir?

+1

"KEY" operatör MySQL Server 5.5 artık kullanımda değilmiş gibi görünür. Ne zaman kaldırıldığından emin değilim, ancak bununla ilgili bir sorun 5.1 üzerinde mevcut, ancak 5.5 değil. – slant

cevap

150

Yani anahtar bir endekstir. PRIMARY KEY anahtar özniteliği, bir sütun tanımında verildiğinde yalnızca ANAHTAR olarak da belirtilebilir. Bu diğer veritabanı sistemleri ile uyumluluk için uygulandı.

column_definition: 
     data_type [NOT NULL | NULL] [DEFAULT default_value] 
     [AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY] KEY] 
     ... 

Ref: http://dev.mysql.com/doc/refman/5.1/en/create-table.html

+6

Notasyonu {INDEX | KEY} genel olarak INDEX ve KEY'in aynı anlama sahip olduğu anlamına gelmez, ya da ANAH bir INDEX'dir;) – sergtk

+1

@sergtk: MySQL kılavuzundaki notasyona göre, FOO | BAR, ya FOO anahtar kelimesi anlamına gelir veya BAR anahtar kelimesi kullanılabilir. Id est, eş anlamlılar. – dotancohen

+3

Kesinlikle! MySql kılavuzu INDEX ve KEY'in eş anlamlı olduğunu açıklar - bu yüzden cevabı kaldırdım. Ancak, BNF Notasyonu'nun {|}, yalnızca bu durumda değil, her zaman eşanlamlıları tanımladığı cevabından çıkarılabilir. – sergtk