Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/02/2006, 10h10   #1
Membre du Club
 
Inscription : mars 2005
Messages : 66
Détails du profil
Informations personnelles :
Âge : 39

Informations forums :
Inscription : mars 2005
Messages : 66
Points : 44
Points : 44
Par défaut Probleme de création table avec PK et auto_increment

Bonjour
J'ai un problème pour recréer cette table provenant d'une version 3.23 sur une 4.1.15.

J'ai l'impression qu'il ne tient pas compte du Disable Key car j'ai une erreur:
ERROR 1062 (23000): Duplicate entry '1' for key 1

et qu'il commence à incrémenter la colonne ID à 1, et non à zero.

je ne comprends pas pourquoi il ne tient pas compte du disable key.

Pouvez-vous m'aider svp ?

Merci

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
CREATE TABLE `users_group_security` (
  `ID` int(10) NOT NULL AUTO_INCREMENT,
  `check` varchar(5) NOT NULL DEFAULT '',
  `admin` varchar(5) NOT NULL DEFAULT '',
  `admin_view` varchar(5) NOT NULL DEFAULT '',
  `csr` varchar(5) NOT NULL DEFAULT '',
  `fin` varchar(5) NOT NULL DEFAULT '',
  `ls` varchar(5) NOT NULL DEFAULT '',
  `grs` varchar(5) NOT NULL DEFAULT '',
  `weekly` varchar(5) NOT NULL DEFAULT '',
  `monthly` varchar(5) NOT NULL DEFAULT '',
  `stock` varchar(5) NOT NULL DEFAULT '',
  `password` varchar(5) NOT NULL DEFAULT '',
  `unit` varchar(5) NOT NULL DEFAULT '',
  `user` varchar(5) NOT NULL DEFAULT '',
  `supplier` varchar(5) NOT NULL DEFAULT '',
  `forecast` varchar(5) NOT NULL DEFAULT '',
  `bigbrother` varchar(5) NOT NULL DEFAULT '',
  `menus` varchar(5) NOT NULL DEFAULT '',
  `ncr` varchar(5) NOT NULL DEFAULT '',
  `transfers` varchar(5) NOT NULL DEFAULT '',
  `nnsuppliers` varchar(5) NOT NULL DEFAULT '',
  `expenses` varchar(5) NOT NULL DEFAULT '',
  `hands` varchar(5) NOT NULL DEFAULT '',
  PRIMARY KEY  (`ID`)
) TYPE=MyISAM;
 
/*!40000 ALTER TABLE `users_group_security` DISABLE KEYS */;
 
--
-- Dumping data for table `users_group_security`
--
 
 
LOCK TABLES `users_group_security` WRITE;
INSERT INTO `users_group_security` VALUES 
(0,'1','1','0','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1'),
(1,'1','0','1','1','1','1','1','1','1','1','1','','','0','1','1','','1','1','1','','1'),
(2,'1','0','0','1','1','1','1','1','1','1','1','','','','','','','1','1','1','','1'),
(3,'1','0','0','1','1','0','0','1','1','0','','','','','','','','','1','','',''),
(4,'1','0','0','0','0','0','1','0','0','0','','','','1','','','','','','','',''),
(5,'1','0','0','1','1','1','1','1','1','1','1','','','','','','','1','1','1','','1'),
(8,'','0','0','0','0','0','0','0','0','0','0','0','0','1','0','0','1','1','','1','',''),
(9,'','','','','','','','','','','','','','','','','1','','','','','');
 
 
 
/*!40000 ALTER TABLE `users_group_security` ENABLE KEYS */;
UNLOCK TABLES;
slefevre01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2006, 14h17   #2
Membre actif
 
Avatar de chat hotplug
 
Inscription : avril 2004
Messages : 208
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 208
Points : 196
Points : 196
Bonjour,

Même avec un MySQL 3 les colonnes auto_increment commencent à 1!
Si vous mettez 0 c'est la valeur 1 qui sera choisie ou plus si 1 existe déjà.
D'où le duplicate key quand vous insérez 1 après avoir voulu inséré 0.

Voilà mon avis.

Maintenant si vous n'aviez pas de problème avant cela vient surement d'une difference de comportement entre les versions. valeur NULL si valeur incorrect, abscence d'avertissement et tuple erroné ignoré, etc... 8)
__________________
Vous cherchez une Illustratrice ou Infographiste ?
http://perso.wanadoo.fr/florence-illustratrice/
Vous cherchez un WebDesigner ?
http://www.klerdesign.com
chat hotplug est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2006, 15h01   #3
Membre du Club
 
Inscription : mars 2005
Messages : 66
Détails du profil
Informations personnelles :
Âge : 39

Informations forums :
Inscription : mars 2005
Messages : 66
Points : 44
Points : 44
J'ai trouvé une solution: un petit set sql_mode='NO_AUTO_VALUE_ON_ZERO' au début du dump.


NO_AUTO_VALUE_ON_ZERO affects handling of AUTO_INCREMENT columns. Normally, you generate the next sequence number for the column by inserting either NULL or 0 into it. NO_AUTO_VALUE_ON_ZERO suppresses this behavior for 0 so that only NULL generates the next sequence number.

This mode can be useful if 0 has been stored in a table's AUTO_INCREMENT column. (Storing 0 is not a recommended practice, by the way.) For example, if you dump the table with mysqldump and then reload it, MySQL normally generates new sequence numbers when it encounters the 0 values, resulting in a table with contents different from the one that was dumped. Enabling NO_AUTO_VALUE_ON_ZERO before reloading the dump file solves this problem. mysqldump now automatically includes in its output a statement that enables NO_AUTO_VALUE_ON_ZERO, to avoid this problem.
slefevre01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2006, 14h14   #4
Membre actif
 
Avatar de chat hotplug
 
Inscription : avril 2004
Messages : 208
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 208
Points : 196
Points : 196
Bien. Y'a plus qu'à appuyer sur le bouton RESOLU
__________________
Vous cherchez une Illustratrice ou Infographiste ?
http://perso.wanadoo.fr/florence-illustratrice/
Vous cherchez un WebDesigner ?
http://www.klerdesign.com
chat hotplug est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h20.


 
 
 
 
Partenaires

Hébergement Web