create table d(id numeric(1), code varchar(2))
Après avoir créé le tableau ci-dessus, comment puis-je ajouter une clé primaire composite sur les deux champs et également une clé étrangère?
Dans Oracle, vous pouvez faire ceci:
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)
devrait le faire. Il existe de nombreuses options pour une clé/index primaire de base en fonction de la base de données avec laquelle vous travaillez.
Le ALTER TABLE
la déclaration présentée par Chris devrait fonctionner, mais vous devez d'abord déclarer les colonnes NOT NULL
. Toutes les parties d'une clé primaire doivent être NOT NULL
.
Vous n'avez pas besoin de créer d'abord la table, puis d'ajouter les clés dans les étapes suivantes. Vous pouvez ajouter à la fois la clé primaire et la clé étrangère lors de la création de la table:
Cet exemple suppose l'existence d'une table (Codes
) que nous voudrions référencer avec notre clé étrangère.
CREATE TABLE d (
id [numeric](1),
code [varchar](2),
PRIMARY KEY (id, code),
CONSTRAINT fk_d_codes FOREIGN KEY (code) REFERENCES Codes (code)
)
Si vous n'avez pas de table que nous pouvons référencer, ajoutez-en une comme celle-ci pour que l'exemple fonctionne:
CREATE TABLE Codes (
Code [varchar](2) PRIMARY KEY
)
REMARQUE: vous devez avoir une table à référencer avant de créer la clé étrangère.