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?
Réponses:
25 pour la réponse № 1Dans Oracle, vous pouvez faire ceci:
create table D (
ID numeric(1),
CODE varchar(2),
constraint PK_D primary key (ID, CODE)
);
29 pour la réponse № 2
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.
6 pour la réponse № 3
le ALTER TABLE
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
.
4 pour la réponse № 4
Vous n'avez pas besoin de créer la table en premier, 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 souhaitons 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.
2 pour la réponse № 5
Si vous utilisez Sql Server Management Studio Designer, sélectionnez simplement les deux lignes (Maj + clic) et Définir la clé primaire.