Domanda Come aggiungere la chiave primaria composita alla tabella


create table d(id numeric(1), code varchar(2))

Dopo aver creato la tabella sopra come posso aggiungere una chiave primaria composta su entrambi i campi e anche una chiave esterna?


27
2017-08-29 09:45


origine


risposte:


In Oracle, puoi fare questo:

create table D (
  ID numeric(1),
  CODE varchar(2),
  constraint PK_D primary key (ID, CODE)
);

25
2017-08-29 10:05



alter table d add constraint pkc_Name primary key (id, code) 

dovrebbe farlo Ci sono molte opzioni per una chiave primaria / indice di base a seconda di quale DB stai lavorando.


29
2017-08-29 10:03



Il ALTER TABLE la dichiarazione presentata da Chris dovrebbe funzionare, ma prima devi dichiarare le colonne NOT NULL. Tutte le parti di una chiave primaria devono essere NOT NULL.


6
2017-08-29 10:56



Non è necessario creare prima la tabella e quindi aggiungere le chiavi nei passaggi successivi. È possibile aggiungere sia la chiave primaria che la chiave esterna durante la creazione della tabella:

Questo esempio presuppone l'esistenza di una tabella (Codes) che vorremmo fare riferimento alla nostra chiave estera.

CREATE TABLE d (
id [numeric](1),
code [varchar](2),
PRIMARY KEY (id, code),
CONSTRAINT fk_d_codes FOREIGN KEY (code) REFERENCES Codes (code)
)

Se non hai una tabella a cui possiamo fare riferimento, aggiungine una come questa in modo che l'esempio funzioni:

CREATE TABLE Codes (
    Code [varchar](2) PRIMARY KEY   
    )

NOTA: è necessario disporre di una tabella di riferimento prima di creare la chiave esterna.


4
2017-09-02 21:27



Se si utilizza Sql Server Management Studio Designer, è sufficiente selezionare entrambe le righe (Maiusc + clic) e Imposta chiave primaria.

enter image description here


2
2018-02-10 17:17