create table d(id numeric(1), code varchar(2))
Después de crear la tabla anterior, ¿cómo puedo agregar una clave primaria compuesta en ambos campos y también una clave externa?Cómo agregar una clave primaria compuesta a la tabla
create table d(id numeric(1), code varchar(2))
Después de crear la tabla anterior, ¿cómo puedo agregar una clave primaria compuesta en ambos campos y también una clave externa?Cómo agregar una clave primaria compuesta a la tabla
En Oracle, usted puede hacer esto:
create table D (
ID numeric(1),
CODE varchar(2),
constraint PK_D primary key (ID, CODE)
);
alter table d add constraint pkc_Name primary key (id, code)
debe hacerlo. Hay muchas opciones para una clave primaria/índice básico, dependiendo de con qué DB trabaje.
La declaración ALTER TABLE
presentada por Chris debería funcionar, pero primero tiene que declarar las columnas NOT NULL
. Todas las partes de una clave primaria deben ser NOT NULL
.
No necesita crear primero la tabla y luego agregar las claves en los pasos siguientes. Puede agregar la clave principal y la clave externa al crear la tabla:
Este ejemplo asume la existencia de una tabla (Codes
) a la que nos gustaría hacer referencia con nuestra clave externa.
CREATE TABLE d (
id [numeric](1),
code [varchar](2),
PRIMARY KEY (id, code),
CONSTRAINT fk_d_codes FOREIGN KEY (code) REFERENCES Codes (code)
)
Si no tiene una tabla que podemos hacer referencia, agrega uno como éste, así que el ejemplo funcionará:
CREATE TABLE Codes (
Code [varchar](2) PRIMARY KEY
)
NOTA: debe tener una tabla de referencia antes de creando la clave foránea
Si utiliza Sql Server Management Studio Designer simplemente seleccione ambas filas (Shift + clic) y configure la clave principal.
estoy bastante seguro de que elimina las otras restricciones clave – thanatorr
crear tr tabla (id numérica (1), varchar bin (10)) alter table tr agregar restricción pk_id clave primaria (id, bin) su no trabajaron por qué – Domnic
Sir su trabajado gracias – Domnic
@simonn: solo curiosidad, no puedo ch Eck en este momento, pero ¿NO es NULO para las columnas implícitas, o es necesario agregarlas a las definiciones de las columnas? – Thilo