Problème SQL - Column count doesn't match...
ArthurT
-
ArthurT -
ArthurT -
Bonjour,
Je suis en train de m'occuper de la base de données pour un projet de réseau social, et j'ai quelques soucis avec le SQL apparemment.
Je dispose d'une table "organization_" avec comme colonnes : organizationId (Primary key), comapnyId, parentOrganizationId, treePath, name, type_, recursable, regionId, countryId, statusId, comments. Si je compte bien, ça en fait donc 11.
Le problème que j'ai : alors que j'essaie d'entrer des valeurs pour tester ma base de données, c'est à dire :
je reçois le code d'erreur suivant :
Pourtant j'ai bien vérifié et revérifié que tout collait au niveau du nombre de colonnes, j'en insère bien 11.
Est-il possible qu'un Trigger dérange la table ?
Voici les deux Triggers que j'applique à cette table :
Quelqu'un pourrait-il m'aider à résoudre ce problème rapidement ?
D'avance, grand merci à lui,
Cordialement,
ArthurT
Je suis en train de m'occuper de la base de données pour un projet de réseau social, et j'ai quelques soucis avec le SQL apparemment.
Je dispose d'une table "organization_" avec comme colonnes : organizationId (Primary key), comapnyId, parentOrganizationId, treePath, name, type_, recursable, regionId, countryId, statusId, comments. Si je compte bien, ça en fait donc 11.
Le problème que j'ai : alors que j'essaie d'entrer des valeurs pour tester ma base de données, c'est à dire :
INSERT INTO organization_ VALUES (902134, 1406, 0, '/902134/', 'TestCompany', 'company', 1, 0, 0, 0, '');
je reçois le code d'erreur suivant :
#1136 - Column count doesn't match value count at row 1
Pourtant j'ai bien vérifié et revérifié que tout collait au niveau du nombre de colonnes, j'en insère bien 11.
Est-il possible qu'un Trigger dérange la table ?
Voici les deux Triggers que j'applique à cette table :
delimiter | CREATE TRIGGER addToW_table2 AFTER INSERT ON organization_ FOR EACH ROW BEGIN INSERT INTO w_organization_ VALUES(NEW.organizationId, null); INSERT INTO Actors_ (uAid_) (SELECT uAid_ FROM w_user_); INSERT INTO Actors_ (uAid_) (SELECT uAid_ FROM w_organization_); END; | delimiter ; delimiter | CREATE TRIGGER deleteOrg AFTER DELETE ON organization_ FOR EACH ROW BEGIN DELETE FROM w_organization_ WHERE organizationId = OLD.organizationId; DELETE FROM Actors_ WHERE uAiD_ = (SELECT w_organization_.uAiD_ FROM w_organization_ w, organization_ o WHERE OLD.organizationId = w.organizationId); END; | delimiter ;
Quelqu'un pourrait-il m'aider à résoudre ce problème rapidement ?
D'avance, grand merci à lui,
Cordialement,
ArthurT
A voir également:
- Problème SQL - Column count doesn't match...
- Logiciel sql - Télécharger - Bases de données
- Application pour regarder match en direct sur iphone - Télécharger - Médias et Actualité
- Sql lister les tables ✓ - Forum Programmation
- Expected value at line 1 column 1 firefox ✓ - Forum MacOS
- Resultat match - Télécharger - Vie quotidienne
8 réponses
Bonjour,
Si tu enlèves/ajoutes une colonne dans ton INSERT, tu as toujours une erreur ?
Sinon, j'ai bien envie de te dire que la syntaxe est mauvaise puisqu'il manque une partie de la requête, comme expliqué ici => http://sql.1keydata.com/fr/sql-insert-into.php
Si tu enlèves/ajoutes une colonne dans ton INSERT, tu as toujours une erreur ?
Sinon, j'ai bien envie de te dire que la syntaxe est mauvaise puisqu'il manque une partie de la requête, comme expliqué ici => http://sql.1keydata.com/fr/sql-insert-into.php
Bonjour AssassinTourist, et merci pour ta réponse.
Oui, en enlevant ou en rajoutant une colonne, cela ne fonctionne toujours pas.
J'ai également déjà essayé avec la syntaxe complète comme ceci:
Cela ne fonctionne pas non plus. Voilà pourquoi j'ai un problème
Oui, en enlevant ou en rajoutant une colonne, cela ne fonctionne toujours pas.
J'ai également déjà essayé avec la syntaxe complète comme ceci:
INSERT INTO organization_(organizationId, companyId, parentOrganizationId, treePath, name, type_, recursable, regionId, countryId, statusId, comments) VALUES (902134, 1406, 0, '/902134/', 'TestCompany', 'company', 1, 0, 0, 0, '');
Cela ne fonctionne pas non plus. Voilà pourquoi j'ai un problème
Ah j'ai vu !
Dans ta colonne treePath, tu mets '/902134/' !
Or /' va juste lui dire qu'il faut prendre ' comme une apostrophe simple et non comme une fin de colonne. Je ne sais plus exactement comment résoudre le problème... je crois que faire '/902134//' fonctionne
Dans ta colonne treePath, tu mets '/902134/' !
Or /' va juste lui dire qu'il faut prendre ' comme une apostrophe simple et non comme une fin de colonne. Je ne sais plus exactement comment résoudre le problème... je crois que faire '/902134//' fonctionne
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ah non, j'ai confondu avec le backslah qui, lui, pose problème...
Est-ce que parentOrganizationId et comments peuvent être vides dans ta base ? Sinon, si tu changes la valeur, tu as encore l'erreur ?
Es-tu certain que le type de tes colonnes correspond à ce que tu lui donnes ?
Est-ce que parentOrganizationId et comments peuvent être vides dans ta base ? Sinon, si tu changes la valeur, tu as encore l'erreur ?
Es-tu certain que le type de tes colonnes correspond à ce que tu lui donnes ?
Problème résolu : C'était effectivement le trigger qui cassait tout. Je l'ai enlevé et tout remarche. C'est vraiment dommage, je pensais avoir compris comment fonctionnent les Triggers...
Merci beaucoup pour ton aide ;-)
Merci beaucoup pour ton aide ;-)
J'ai réussi à isoler le problème je crois.
Seul soucis, je ne vois vraiment pas comment le résoudre.
Voilà le trigger, après quelques modifications :
Le problème est que, quand j'entre une nouvelle organization_, je reçois une erreur encore plus bizarre :
J'ai évidemment vérifié, et ce n'est pas le cas, il n'y a aucune entrée avec 100019 comme Pimary Key dans Actors_ (puisque ce qu'est ici cette ligne du Trigger qui pose un problème, j'ai pu le vérifier manuellement).
Le fait qu'il y ait un AUTO_INCREMENT sur le uAid_ dans w_organization_ peut-il avoir un impact sur ceci ?
Comment résoudre ce problème ? C'est bien étrange comme cas je trouve...
Seul soucis, je ne vois vraiment pas comment le résoudre.
Voilà le trigger, après quelques modifications :
delimiter | CREATE TRIGGER addToW_table2 AFTER INSERT ON organization_ FOR EACH ROW BEGIN INSERT INTO w_organization_ (organizationId, uAid_) VALUES (NEW.organizationId, 0); INSERT INTO Actors_ (uAid_) (SELECT wu.uAid_ FROM w_organization_ wu, Actors_ a WHERE wu.organizationId=NEW.organizationId); END; | delimiter ;
Le problème est que, quand j'entre une nouvelle organization_, je reçois une erreur encore plus bizarre :
INSERT INTO Actors_ (SELECT wu.uAid_ FROM w_organization_ wu, Actors_ a WHERE wu.organizationId=902100 AND (SELECT COUNT(uAid_) FROM Actors_ a WHERE a.uAid_=wu.uAid_)=0) Duplicate entry '100019' for key 'PRIMARY' [Error Code: 1062] [SQL State: 23000]
J'ai évidemment vérifié, et ce n'est pas le cas, il n'y a aucune entrée avec 100019 comme Pimary Key dans Actors_ (puisque ce qu'est ici cette ligne du Trigger qui pose un problème, j'ai pu le vérifier manuellement).
Le fait qu'il y ait un AUTO_INCREMENT sur le uAid_ dans w_organization_ peut-il avoir un impact sur ceci ?
Comment résoudre ce problème ? C'est bien étrange comme cas je trouve...