sql >> Base de Datos >  >> RDS >> Database

Cómo crear una clave principal en SQL

Problema:

Desea crear una clave principal para una tabla en una base de datos.

Ejemplo:

Queremos una clave principal para una tabla llamada product .

Solución 1 (nueva tabla):

CREATE TABLE product (
id INT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
producer VARCHAR(100) NOT NULL,
price DECIMAL(7,2)
);

Discusión:

Para crear una nueva tabla con una columna definida como clave principal, puede usar la palabra clave PRIMARY KEY al final de la definición de esa columna. En nuestro ejemplo, creamos la tabla product usando un CREATE TABLE cláusula, con los nombres de las columnas y sus respectivos tipos de datos entre paréntesis. Elegimos la identificación de la columna como la clave principal de esta tabla, por lo que designamos PRIMARY KEY al final de la definición de esta columna.

Tenga en cuenta que solo puede crear una clave principal para una tabla determinada.

Solución 2 (nueva tabla):

CREATE TABLE product (
name VARCHAR(100) NOT NULL,
producer VARCHAR(100) NOT NULL),
price DECIMAL(7,2),
PRIMARY KEY(name, producer)
);

Discusión:

Otra forma de definir una clave principal durante la creación de una nueva tabla es con una PRIMARY KEY cláusula al final de las definiciones de columna. En este caso, designamos una o más columnas como argumento para la PRIMARY KEY cláusula; estas columnas se convierten en la clave principal de la tabla.

Tenga en cuenta que este enfoque permite crear claves principales con varias columnas. En este ejemplo, la clave principal de la tabla product está formado por dos columnas:name y producer .

Solución 3 (tabla existente):

ALTER TABLE product
ADD PRIMARY KEY (id);

Discusión:

También es posible definir una clave principal para una tabla existente que aún no tiene una clave principal.

Aquí, la tabla se altera usando un ALTER TABLE cláusula. La tabla (en nuestro ejemplo, product ) lleva el nombre de la palabra clave ALTER TABLE , luego ADD PRIMARY KEY sigue la cláusula con el nombre de la columna que se utilizará como clave principal. Tenga en cuenta que la tabla ya debe existir antes de que se ejecute este comando y la tabla no debe tener una clave principal.

Solución 4 (tabla existente, restricción de clave principal):

ALTER TABLE product
ADD CONSTRAINT PK_product_id PRIMARY KEY (id);

Discusión:

Use una consulta como esta si desea nombrar una restricción de clave principal para una tabla existente. Aquí, la restricción de clave principal, PK_product_id , se genera a partir de la columna id . Si no especifica el nombre de la restricción, la base de datos genera un nombre de restricción predeterminado (el nombre variará según la base de datos).