Primary key

Eléphant du PHP | 180 Messages

15 mars 2006, 15:04

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.

Mammouth du PHP | 19672 Messages

15 mars 2006, 16:18

Deux choses :
  1. une clé primaire est vivement recommandée mais nullement obligatoire;
  2. 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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 180 Messages

15 mars 2006, 16:43

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

Mammouth du PHP | 19672 Messages

15 mars 2006, 16:50

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]
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 180 Messages

15 mars 2006, 17:16

non cela ne marche pas ça me crée toujours les autres champs sauf celui-ci

Mammouth du PHP | 19672 Messages

15 mars 2006, 17:22

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;
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 180 Messages

15 mars 2006, 17:33

ton dernier script oui il est bon merci encore

Eléphant du PHP | 101 Messages

17 mars 2006, 12:43

Deux choses :
  1. 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 ...
Voir mes projets sur mon BLOG