2011-09-08 14 views
36

¿Cuál es la diferencia entre este código:PRIMARIA Definición de teclas en MySQL CREATE TABLE

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

y esto:

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

código?

Por lo tanto, una declaración PRIMARY KEY por separado o como parte de una definición de columna. La misma pregunta para ÍNDICE ÚNICO y palabra clave ÚNICA en la definición de columna.

+0

ambas son iguales, ¿no? es solo forma de escribir –

+0

También creo que ambos son iguales. – giga

+1

No estoy totalmente de acuerdo, vea la respuesta de @thomasrutter – waanders

Respuesta

39

La segunda sintaxis es simplemente un atajo que le permite especificar la columna y agregar un índice en una sola cláusula.

Esto funciona bien en los casos en los que simplemente desea crear una columna y agregar un índice sobre ella.

Tendrá que usar la primera sintaxis si desea hacer algo más complicado, como agregar un índice basado en varias columnas en lugar de una sola columna, o si agrega o cambia un índice en una columna existente ; es decir, no está creando la columna y el índice al mismo tiempo.

+4

¡Gracias! Me gustan las respuestas acompañadas de argumentos – waanders

0

Hay muchas maneras de despellejar a un gato y más de 2 ejemplos son solo 2 de ellas. Ellos son idénticos. No hay diferencia

+0

No estoy totalmente de acuerdo, vea la respuesta de @thomasrutter – waanders

+0

Para ser más precisos, los dos ejemplos que proporciona hacen exactamente lo mismo, pero el ejemplo anterior permite más funciones que la último. –

1

MySQL permite utiliza la directiva PRIMARY KEY para permitirle establecer la clave principal de forma dinámica. Suministrar PRIMARY KEY como argumento al constructor solo puede invocarse para crear la columna. PRIMARY KEY (X), PRIMARY KEY (Y), PRIMARY KEY (Z) permite cambiar las teclas principales en consultas posteriores.

1

La forma en que lo veo es ... El primer método se usa para crear claves compuestas. Mientras que el segundo método (más legible para mí) se usa principalmente si solo hay una clave principal en la tabla.

El segundo método no se puede utilizar si desea implementar la clave compuesta

Cuestiones relacionadas