¿Declarar un atributo de una tabla como UNIQUE equivale a declararlo como PRIMARY KEY?ÚNICA y PRIMARY KEY
muchas gracias!
¿Declarar un atributo de una tabla como UNIQUE equivale a declararlo como PRIMARY KEY?ÚNICA y PRIMARY KEY
muchas gracias!
La diferente es: La clave principal creará un índice agrupado por defecto y solo una PK puede existir en una tabla. La clave principal puede abarcar varias columnas (clave compuesta)
No ambos no son iguales pero son similares, cuando una columna es Única tiene valores únicos pero también permite un valor Nulo en esa columna, pero Primario no permite ningún valor nulo . La clave principal se puede usar como referencia en alguna otra tabla.
Sólo puede tener una clave primaria en una tabla sino múltiple Clave única
Cuando se declara una restricción UNIQUE, SQL Server crea un índice único para acelerar el proceso de búsqueda de duplicados. En este caso, el índice se establece de manera predeterminada en el índice NONCLUSTERED, porque puede tener solo un índice CLUSTERED por tabla.
Contrariamente a la tecla PRIMARY Las restricciones UNIQUE pueden aceptar NULL pero solo una vez. Si la restricción se define en una combinación de campos, entonces cada campo puede aceptar NULL y puede tener algunos valores en ellos, siempre que los valores de combinación sean únicos.
Happy Coding !!!
"Las restricciones ÚNICAS pueden aceptar NULO pero solo una vez": Eso contradice lo que dijo AvatarKava: Las claves ÚNICAS pueden ser NULAS, y se permiten múltiples valores NULOS. ¿Cuál es? – Thilo
desde: http://dev.mysql.com/doc/refman/5.0/en/create-index.html Un índice UNIQUE crea una restricción tal que todos los valores en el índice deben ser distintos. Se produce un error si intenta agregar una nueva fila con un valor clave que coincida con una fila existente. Esta restricción no se aplica a valores NULL excepto para el motor de almacenamiento BDB.Para otros motores, un índice ÚNICO permite valores NULL múltiples para columnas que pueden contener NULL. Si especifica un valor de prefijo para una columna en un índice ÚNICO, los valores de columna deben ser únicos dentro del prefijo. – AvatarKava
La pregunta está etiquetada como "mysql", pero creo que Oracle también permite múltiples valores NULL (dos NULL nunca se consideran iguales). Esa parece ser la convención más natural. – Thilo
No. Hacer que una columna sea única es muy diferente de convertirla en una clave principal o en parte de la clave principal.
Nope.
Las TECLAS PRIMARIAS deben ser ÚNICAS, pero las claves ÚNICAS no necesitan ser primarias. Puede tener múltiples claves ÚNICAS en una tabla.
La diferencia clave es que las claves PRIMARY no pueden tener valores NULL, ya que deben identificar de manera única una fila. Las claves ÚNICAS pueden ser NULL y se permiten múltiples valores NULL (a menos que esté usando un motor de tabla poco común como BDB).
Ugh que fue un juego de palabras involuntariamente horrible. – AvatarKava
Parece que recuerdo haber intentado crear un índice único en una tabla y no poder hacerlo debido a múltiples valores NULL, pero debo estar tropezando. – Duncan
Podría haber estado de vuelta en 4.x, Duncan - Creo que tenían esa restricción en ese momento: http://dev.mysql.com/doc/refman/5.0/en/create-index.html – AvatarKava
UNIQUE aún puede ser NULL.
PRIMARY KEY significa UNIQUE y NOT NULL y solo puede haber una PRIMARY KEY por mesa.
No .. No son equivalentes. La clave única puede tener valores nulos, pero la clave primaria no puede tener un valor nulo. Aquí está el enlace que explica la diferencia http://sqlhints.com/2013/06/02/difference-between-primary-key-and-unique-key-in-sql-server/
Puede tener restricciones únicas que abarcan múltiples columnas. – Thilo