Page 1 sur 1
Primary key
Posté : 15 mars 2006, 15:04
par sacco
Bonjour,
je voudrais creer une table mais comme je n'ai pas de champs pour stipuler une prmary key ( car il me semble que cela est obligatoire) je voudrait savoir comment en stipulant qu'elle a pour valeur :
indexation integer (100)
mais comment l'incrémenter de 1 à chaque enregistrement.
Posté : 15 mars 2006, 16:18
par Cyrano
Deux choses :
- une clé primaire est vivement recommandée mais nullement obligatoire;
- Quel SGBD utilises-tu ? si c'est MySQL, tu peux créer un champ ta_table_id INT(11) auto_increment PRIMARY KEY et l'incrémentation sera automatique, tu n'auras même pas besoin d'envoyer de valeur lors d'une insertion, MySQL fait ça de façon autonome.
Posté : 15 mars 2006, 16:43
par sacco
j'utilise mysql5
mon code
Code : Tout sélectionner
CREATE TABLE Serveur
(serveurid INT(11) ,
nomserveur VARCHAR(15),
nomserveurbck VARCHAR(15),
cheminlog VARCHAR(50),
auto_increment PRIMARY KEY (serveurid)
);
je dois avoir une erreur de syntaxe tous les champs se créent mais pas le serveurid et pas de message d'erreur
Posté : 15 mars 2006, 16:50
par Cyrano
Essaye donc comme ceci:
Code : Tout sélectionner
CREATE TABLE Serveur(
serveurid INT(11) AUTO_INCREMENT PRIMARY KEY ,
nomserveur VARCHAR( 15 ) ,
nomserveurbck VARCHAR( 15 ) ,
cheminlog VARCHAR( 50 )
);[php][/php]
Posté : 15 mars 2006, 17:16
par sacco
non cela ne marche pas ça me crée toujours les autres champs sauf celui-ci
Posté : 15 mars 2006, 17:22
par Cyrano
J'ignore quelle manip tu as faite, mais chez moi sur MySQL 5.0.19, ça fonctionne parfaitment : voici le script d'exportation:
Code : Tout sélectionner
CREATE TABLE `serveur` (
`serveurid` int(11) NOT NULL auto_increment,
`nomserveur` varchar(15) default NULL,
`nomserveurbck` varchar(15) default NULL,
`cheminlog` varchar(50) default NULL,
PRIMARY KEY (`serveurid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Posté : 15 mars 2006, 17:33
par sacco
ton dernier script oui il est bon merci encore
Posté : 17 mars 2006, 12:43
par tomypunk
Deux choses :
- une clé primaire est vivement recommandée mais nullement obligatoire;
c'est quand même mieux de faire en sorte que tes tables soit en 3eme forme normal de boyces codd ça évite bien des problèmes lors de la programmation ...