UNIQUE y PRIMARY KEY en MySQL

Estado
Cerrado para nuevas respuestas.

WMaradei

Lanero Regular
25 Mar 2004
17
Cual es la diferencia entre declarar en MySQL una restriccion como UNIQUE o declararla como PRIMARY KEY ?
 
1.8.6.1 Constraint PRIMARY KEY / UNIQUE

Normally you will get an error when you try to INSERT or UPDATE a row that causes a primary key, unique key or foreign key violation. If you are using a transactional storage engine such as InnoDB, MySQL will automatically roll back the transaction. If you are using a non-transactional storage engine, MySQL will stop at the incorrect row and leave any remaining rows unprocessed.

To make life easier, MySQL supports an IGNORE keyword for most commands that can cause a key violation (such as INSERT IGNORE and UPDATE IGNORE). In this case, MySQL will ignore any key violation and continue with processing the next row. You can get information about what MySQL did with the mysql_info() API function. See section 20.2.3.30 mysql_info(). In MySQL 4.1 and up, you also can use the SHOW WARNINGS statement. See section 13.5.3.17 SHOW WARNINGS Syntax.

Note that for the moment only InnoDB tables support foreign keys. See section 15.6.4 FOREIGN KEY Constraints. Foreign key support in MyISAM tables is scheduled for implementation in MySQL 5.1.

http://www.mysql.com/documentation/...ysql/bychapter/manual_Clients.html#mysql_info
 
Rta PRIMARY KEY / UNIQUE

Lo que yo entiendo es en pocas palabras que UNIQUE aplica para un solo campo, en campo Primary key es para una combinacion de campos.

Ejemplo

si pones como clave primaria codigo de oficina y el numero de cuenta no se puede repetir una misma oficina con un mismo numero de cuenta, pero si una oficina con otras cuentas, lo cual no pasa si pones esos campos como UNIQUE.
 
Cabe aclarar que toda clave primaria es única mientras que no todo campo Unique es clave primaria. En una tabla puedo tener más de un campo Unique pero sólo una clave primaria (que por supuesto, tiene tamién el constraint Unique por defecto).
 
  • Me gusta
Reacciones: cesarnclc
Estuve revisando y encontre una diferencia entre UNIQUE y PKEY:
Todos los campos que componen una PKEY deben ser no-nulos, mientras que los campos de un UNIQUE si pueden tener valores nulos.
 
Señores la Palabra UNIQUE en una base de Datos es para interpretar el campo como dato UNICO y no necesariamente es para identificar la Primary Key.... como ya sabemos la PK (Primary Key) es Unica, Inalterable y define nuestar tabla.

Con campos Unique normalmente son campos ke estan acompañando al PK por mas seguridad al momento de tomar datos y no pueden ser iguales con cualkier dato de ese mismo campo.

En Mysql cuando kieres crear las definiciones de los campos de tu Tabla solo dale el Pk al campo ke creas necesario y automaticamente Mysql pone lo demas como ser Unico.

Por eso pilas con la opcion UNIQUE es solo cuando tenes una buena entidad relacion ya creada y comprobada.

atte,

Segan
 
Estado
Cerrado para nuevas respuestas.

Los últimos mensajes

Los últimos temas