Solo puede haber uno clave principal por tabla, como lo indica la palabra "principal".
Puede tener UNIQUE
columnas
como:
CREATE TABLE test(
sl_no int PRIMARY KEY, -- NOT NULL due to PK
emp_id int UNIQUE NOT NULL,
emp_name text,
emp_addr text
);
Columnas que son (parte de) la PRIMARY KEY
están marcados NOT NULL
automáticamente.
O use una restricción de tabla en lugar de una restricción de columna para crear un solo multicolumna clave principal . Esto es semánticamente diferente de lo anterior:ahora, solo la combinación de ambas columnas debe ser único, cada columna puede contener duplicados por sí misma.
CREATE TABLE test(
sl_no int, -- NOT NULL due to PK below
emp_id int , -- NOT NULL due to PK below
emp_name text,
emp_addr text,
PRIMARY KEY (sl_no, emp_id)
);
Multicolumna UNIQUE
las restricciones también son posibles.
Aparte:no use identificadores de casos CaMeL en Postgres. Use identificadores legales en minúsculas para que nunca tenga que usar comillas dobles. Hace tu vida más fácil. Ver: