Maison > Article > base de données > Quelle est la différence entre INDEX et KEY dans la création de tables MySQL ?
Lors de la création de tables dans MySQL, vous pouvez rencontrer deux termes pour indexer des données : INDEX et KEY. Bien que ces deux termes servent le même objectif, il existe une différence subtile dans leur utilisation.
Définition de INDEX et KEY
Utilisation dans les instructions Create Table
Dans les instructions Create Table, vous pouvez utiliser INDEX ou KEY de manière interchangeable . Par exemple, les deux instructions suivantes sont équivalentes :
CREATE TABLE tasks ( task_id INT UNSIGNED NOT NULL AUTO_INCREMENT, parent_id INT UNSIGNED NOT NULL DEFAULT 0, task VARCHAR(100) NOT NULL, PRIMARY KEY (task_id), INDEX parent (parent_id) ); CREATE TABLE orders ( order_id INT UNSIGNED NOT NULL AUTO_INCREMENT, KEY order_date (order_date) );
Index uniques ou non uniques
Bien que INDEX et KEY puissent créer des index non uniques, il est important de noter que PRIMARY KEY est unique par définition. Cela signifie que la valeur d'une colonne PRIMARY KEY identifie de manière unique chaque ligne de la table. INDEX et KEY, en revanche, autorisent les valeurs en double.
Clé primaire comme KEY
Dans MySQL, vous pouvez définir une CLÉ PRIMAIRE à l'aide du mot-clé KEY. Cependant, il est recommandé d'utiliser explicitement le mot-clé PRIMARY KEY pour éviter toute confusion. Par exemple :
CREATE TABLE customers ( customer_id INT UNSIGNED NOT NULL AUTO_INCREMENT, name VARCHAR(100) NOT NULL, PRIMARY KEY (customer_id) );
Recommandation
Bien que KEY et INDEX soient synonymes dans MySQL, il est généralement recommandé d'utiliser INDEX car il s'aligne sur la norme ISO SQL et améliore portabilité.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!