152 votes

Comment puis-je définir une clé primaire composite dans SQL ?

Comment puis-je définir une clé primaire composite composée de deux champs dans SQL ?

J'utilise PHP pour créer des tables et tout. Je veux faire un nom de tableau voting avec les champs QuestionID, MemeberID, et vote. Et la clé primaire composite se compose des champs QuestionID et MemberID.

Comment dois-je faire ça ?

7voto

Justin Points 2723
CREATE TABLE `voting` (
  `QuestionID` int(10) unsigned NOT NULL,
  `MemberId` int(10) unsigned NOT NULL,
  `vote` int(10) unsigned NOT NULL,
  PRIMARY KEY  (`QuestionID`,`MemberId`)
);

2voto

Vivek Gupta Points 11

QuestionID sera la clé principale dans votre cas. Vous pouvez utiliser MemberID comme clé candidate (l'indexation sera sur ce point) car un membre peut répondre à plusieurs questions. L'inverse n'aura pas de sens.

Syntaxe :

CREATE TABLE SAMPLE_TABLE  
(COL1 integer,  
COL2 integer,  
COL3 integer,  
PRIMARY KEY (COL1, COL2));  

1voto

Min Points 21

Dans la base de données Oracle, nous pouvons réaliser comme ceci.

CREATE TABLE Student(
  StudentID Number(38, 0) not null,
  DepartmentID Number(38, 0) not null,
  PRIMARY KEY (StudentID, DepartmentID)
);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X