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.