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?

27
demandé sur marc_s 2009-08-29 13:45:30

5 réponses

Oracle, vous pourriez faire ceci:

create table D (
  ID numeric(1),
  CODE varchar(2),
  constraint PK_D primary key (ID, CODE)
);
26
répondu Simon Nickerson 2009-08-29 10:05:22

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.

29
répondu Chris W 2009-08-29 10:10:18

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.

6
répondu Thilo 2012-10-10 19:20:58

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.

4
répondu Jon Crowell 2013-09-07 13:55:57

si vous utilisez Sql Server Management Studio Designer, sélectionnez simplement les deux lignes (Maj+clic) et définissez la clé primaire.

enter image description here

2
répondu Brent 2016-02-10 17:17:04