Una clave principal identifica de forma única cada tabla de filas. Debe contener valores únicos y no NULL. Una tabla solo puede tener una clave principal, que puede constar de uno o varios campos. Cuando se utilizan varios campos como clave principal, se denominan claves compuestas.
Para crear una clave principal en la tabla, debemos usar una palabra clave; «CLAVE PRIMARIA ( )»
Consulta:
CREATE TABLE `Employee` ( `Emp_ID` VARCHAR(20) NOT NULL ,`Name` VARCHAR(50) NOT NULL , `Age` INT NOT NULL ,`Phone_No` VARCHAR(10) NOT NULL ,`Address` VARCHAR(100) NOT NULL , PRIMARY KEY (`Emp_ID`));
Para ver si «Emp_ID» es la clave principal o no, usamos el comando Describe para ver la estructura de la tabla.
DESCRIBE se usa para describir algo. Dado que en la base de datos tenemos tablas, es por eso que usamos el comando DESCRIBE o DESC (ambos son iguales) para describir la estructura de una tabla.
Consulta:
DESCRIBE Employee; Or DESC Employee;
Producción:
Ahora, para crear una restricción PRIMARY KEY en cualquier columna cuando la tabla ya existe (NO HAY UNA CLAVE PRINCIPAL DEFINIDA ANTERIORMENTE), utilice la siguiente sintaxis SQL:
ALTER TABLE [Table_Name] AGREGAR CLAVE PRINCIPAL (ID);
Consulta:
ALTER TABLE Employee ADD PRIMARY KEY (Phone_No);
Producción:
Si se define una clave principal anterior, habrá errores como;
Producción:
Este error se debe a que; Solo puede existir una clave primaria. Entonces, primero tenemos que eliminar la CLAVE PRIMARIA inicial para crear una nueva CLAVE PRIMARIA.
1. Para crear PRIMARY KEY en varias columnas:
Consulta:
CREATE TABLE `Employee` ( `Emp_ID` VARCHAR(20) NOT NULL , `Name` VARCHAR(50) NOT NULL , `Age` INT NOT NULL , `Phone_No` VARCHAR(10) NOT NULL , `Address` VARCHAR(100) NOT NULL , PRIMARY KEY (`Emp_ID`,`Name`));
Producción:
2. Agregue múltiples claves primarias cuando la tabla ya exista
Consulta:
ALTER TABLE Employee ADD CONSTRAINT PK_CUSTID PRIMARY KEY (Emp_ID, NAME); DESC Employee;
Producción:
Publicación traducida automáticamente
Artículo escrito por akshitsaxenaa09 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA