Comment ajouter une clé primaire composite à la table
create table d(id numeric(1), code varchar(2))
Après j'ai créer le tableau ci-dessus comment puis-je ajouter une clé primaire composite sur les deux champs et aussi une clé étrangère?
5 réponses
Oracle, vous pourriez 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 y a beaucoup d'options à une clé/index primaire de base en fonction de ce DB avec lequel vous travaillez.
ALTER TABLE déclaration présentée par Chris devrait fonctionner, mais vous devez d'abord déclarer les colonnes NOT NULL. Toutes les pièces d'une clé primaire doivent être NOT NULL.
Vous n'avez pas besoin de créer la table d'abord, puis ajoutez les clés dans les étapes suivantes. Vous pouvez ajouter à la fois la clé primaire et la clé étrangère en créant la table:
Cet exemple suppose l'existence d'un tableau (Codes) que nous voulons 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 de référence, ajoutez-en une comme celle-ci pour que l'exemple fonctionne:
CREATE TABLE Codes (
Code [varchar](2) PRIMARY KEY
)
NOTE: vous devez avoir une table à référence avant de créer la clé étrangère.
si vous utilisez Sql Server Management Studio Designer, sélectionnez simplement les deux lignes (Maj+clic) et définissez la clé primaire.
