Définition PRIMARY KEY dans l’instruction MySQL CREATE TABLE

Quelle est la différence entre ce code:

CREATE TABLE samples ( sampleid INT(11) NOT NULL AUTO_INCREMENT, sampledate DATE NOT NULL, location VARCHAR(25) NOT NULL, PRIMARY KEY (sampleid) ) ENGINE=InnoDB; 

et ça:

 CREATE TABLE samples ( sampleid INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, sampledate DATE NOT NULL, location VARCHAR(25) NOT NULL, ) ENGINE=InnoDB; 

code?

Donc, une instruction PRIMARY KEY séparée ou une partie d’une définition de colonne. Même question pour UNIQUE INDEX et UNIQUE dans la définition de colonne.

La seconde syntaxe est simplement un raccourci vous permettant de spécifier la colonne et d’y append un index dans une seule clause.

Cela fonctionne très bien dans les cas où vous voulez simplement créer une colonne et y append un index.

Vous devrez utiliser la première syntaxe si vous voulez faire quelque chose de plus compliqué, comme append un index basé sur plusieurs colonnes plutôt qu’une seule colonne, ou si vous ajoutez ou modifiez un index sur une colonne existante; c’est-à-dire que vous ne créez pas la colonne et l’index dessus en même temps.

MySQL autorise l’utilisation de la directive PRIMARY KEY pour vous permettre de définir dynamicment la clé primaire. La fourniture de PRIMARY KEY en tant qu’argument au constructeur ne peut être appelée que lors de la création de la colonne. PRIMARY KEY (X), PRIMARY KEY (Y), PRIMARY KEY (Z) permet de modifier les clés primaires lors des requêtes suivantes.

La façon dont je le vois est .. La première méthode est utilisée pour créer des clés composites. Alors que la seconde méthode (plus lisible pour moi) est principalement utilisée s’il n’y a que la clé primaire dans la table.

La seconde méthode ne peut pas être utilisée si vous souhaitez implémenter une clé composite

Il y a plusieurs façons de peler un chat et plus de 2 exemples ne sont que deux. Ils sont identiques. Il n’y a pas de différence.

Ils sont littéralement les mêmes. Voici un site rapide qui vous montre les différentes façons (3) de le faire. http://www.java2s.com/Code/SQL/Key/Defineanduseprimarykey.htm