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 24/05/2006, 18h39   #1
Invité régulier
 
Inscription : novembre 2004
Messages : 17
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 17
Points : 6
Points : 6
Par défaut [Trigger] Erreur 1136 lors d'une insertion

Bonjour,
je suis en train de faire un petit systeme de gestion de DVD.
Je souhaiterai utiliser un trigger qui, lors de l'insertion d'un nouveau DVD va inserer un nouvelle ligne dans une table stock et inserer une nouvelle ligne dans une table realise (cette table associe un ID de realisateur, situe dans une autre table et l'ID d'un DVD)
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
 
mysql> DESC dvd;DESC realise;DESC stock;
+-----------+-------------+------+-----+------------+----------------+
| FIELD     | Type        | NULL | KEY | DEFAULT    | Extra          |
+-----------+-------------+------+-----+------------+----------------+
| id        | int(11)     | NO   | PRI | NULL       | AUTO_INCREMENT |
| titre     | varchar(30) | NO   |     |            |                |
| annee     | date        | NO   |     | 0000-00-00 |                |
| pays      | char(2)     | NO   | PRI |            |                |
| anneeFilm | date        | NO   |     | 0000-00-00 |                |
+-----------+-------------+------+-----+------------+----------------+
5 rows IN SET (0.00 sec)
 
+---------+---------+------+-----+---------+-------+
| FIELD   | Type    | NULL | KEY | DEFAULT | Extra |
+---------+---------+------+-----+---------+-------+
| artiste | int(11) | NO   | PRI | 0       |       |
| dvd     | int(11) | NO   | PRI | 0       |       |
+---------+---------+------+-----+---------+-------+
2 rows IN SET (0.00 sec)
 
+----------+---------+------+-----+---------+-------+
| FIELD    | Type    | NULL | KEY | DEFAULT | Extra |
+----------+---------+------+-----+---------+-------+
| dvd      | int(11) | NO   | PRI | 0       |       |
| quantite | int(11) | NO   |     | 0       |       |
| reste    | int(11) | NO   |     | 0       |       |
+----------+---------+------+-----+---------+-------+
3 rows IN SET (0.03 sec)
 
 
mysql> delimiter ¦
mysql> CREATE TRIGGER aj_stock_realise after INSERT ON dvd
    -> FOR EACH ROW BEGIN
    -> INSERT INTO stock VALUES (NEW.id), (1), (1);
    -> INSERT INTO realise VALUES (0), (NEW.id);
    -> end;
    -> ¦
Query OK, 0 rows affected (0.00 sec)
Jusque la, tout va bien. Le probleme arrive quand je rajoute un DVD avec cette requete :
Code :
1
2
3
INSERT  INTO  `dvd` (  `id` ,  `titre` ,  `annee` ,  `pays` ,  `anneeFilm`  ) 
VALUES ( '',  'toto',  '0000-00-00',  'us',  '0000-00-00'
)

MySQL me retourne cette erreur :

Code :
 #1136 - Column count doesn't match value count at row 1
Je suis pas un pro de MySQL, est-ce que quelqu'un peut me depanner ? J'utilise MySQL 5.0.18, for Win32
Merci
tyrant est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2006, 20h07   #2
Provisoirement toléré
 
Avatar de Maximilian
 
Inscription : juin 2003
Messages : 2 622
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 2 622
Points : 2 505
Points : 2 505
Bonjour,

Le message d'erreur est explicite : le nombre de valeurs n'est pas celui attendu par rapport au nombre de colonnes.

Il doit s'agir de cet INSERT :
Code :
INSERT INTO stock VALUES (NEW.id)
à changer en :

Code :
INSERT INTO stock (dvd) VALUES (NEW.id)
__________________
Pensez au bouton
Maximilian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2006, 21h41   #3
Invité régulier
 
Inscription : novembre 2004
Messages : 17
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 17
Points : 6
Points : 6
Salut,


merci a toi, il y avait un probleme mais au niveau de l'autre INSERT... erreur de syntaxe, je n'utilise pas assez SQL pour le connaitre par coeur

Encore merci
tyrant 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 12h19.


 
 
 
 
Partenaires

Hébergement Web