Cómo proporcionar la clave principal para varias columnas en una sola tabla, el uso de PostgreSQL?

Ejemplo:

Create table "Test" 
(
   "SlNo" int not null primary key,
   "EmpID" int not null, /* Want to become primary key */
   "Empname" varchar(50) null,
   "EmpAddress" varchar(50) null
);

Nota: quiero hacer "EmpID" también una clave principal.

  • No estoy seguro de que me entiendo muy bien, ¿estás tratando de crear una única clave principal con dos columnas o dos completamente independiente llaves?
  • Isaksson, Sola clave principal para ambas columnas.
InformationsquelleAutor Meem | 2014-05-08

1 Comentario

  1. 27

    Sólo puede haber uno de clave principal de cada tabla. Que es lo que la palabra «principal» insinúa.

    Usted puede tener otros ÚNICO columnas.

    CREATE TABLE test(
       sl_no int PRIMARY KEY,  -- NOT NULL automatically
       emp_id int UNIQUE NOT NULL,
       emp_name text,
       emp_addr text
    );

    O para hacer que una sola mismo clave primaria, el uso de una restricción de tabla en lugar de una columna de restricción:

    CREATE TABLE test(
       sl_no int,     -- NOT NULL automatically
       emp_id int ,   -- NOT NULL automatically
       emp_name text,
       emp_addr text,
       PRIMARY KEY (sl_no, emp_id)
    );

    A un lado: Mi consejo es no utilizar Camello caso de los identificadores en Postgres. Nunca. Hace su vida más fácil.

Dejar respuesta

Please enter your comment!
Please enter your name here