Erreur PostgreSQL: INSERT a plus de colonnes cibles que d'expressions, quand il n'en a pas
alors je commence avec ça...
SELECT * FROM parts_finishing;
...Je reçois ce...
id, id_part, id_finish, id_metal, id_description, date, inside_hours_k, inside_rate, outside_material
(0 lignes)
... donc tout a l'air bien jusqu'ici donc je fais ceci...
INSERT INTO parts_finishing
(
id_part, id_finish, id_metal, id_description,
date, inside_hours_k, inside_rate, outside_material
) VALUES (
('1013', '6', '30', '1', NOW(), '0', '0', '22.43'),
('1013', '6', '30', '2', NOW(), '0', '0', '32.45'));
...et je reçois...
ERREUR: INSERT a plus de cible de colonnes que les expressions
maintenant j'en ai fait quelques uns des choses comme s'assurer que les nombres ne sont pas entre guillemets, sont entre guillemets (j'aimerais un guide de table à cela en ce qui concerne les entiers, les types numériques, etc) après j'ai évidemment compté le nombre de noms de colonnes et de valeurs insérées. J'ai aussi essayé de m'assurer que toutes les virgules sont des virgules...vraiment à une perte ici. Il n'y a pas d'autres colonnes sauf id
qui est bigserial
primary key
.
2 réponses
Supprimer les ()
:
INSERT INTO parts_finishing
(
id_part, id_finish, id_metal, id_description,
date, inside_hours_k, inside_rate, outside_material
) VALUES
('1013', '6', '30', '1', NOW(), '0', '0', '22.43')
, ('1013', '6', '30', '2', NOW(), '0', '0', '32.45')
;
j'ai eu un problème similaire en utilisant SQL composition de cordes avec psycopg2
Python mais le problème est légèrement différent. Il me manquait une virgule après un champ.
INSERT INTO parts_finishing
(id_part, id_finish, id_metal)
VALUES (
%(id_part)s <-------------------- missing comma
%(id_finish)s,
%(id_metal)s
);
cela a causé psycopg2
pour un rendement de cette erreur:
erreur: INSERT a plus de colonnes cibles que d'expressions.