PostgreSQL ERROR: INSERT имеет больше целевых столбцов, чем выражения, когда это не
Итак, я начинаю с этого...
SELECT * FROM parts_finishing;
... Я получаю это...
id, id_part, id_finish, id_metal, id_description, date, inside_hours_k, inside_rate, outside_material
(0 строк)
... так что все выглядит нормально до сих пор, поэтому я делаю это...
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'));
... и я получаю...
ОШИБКА: INSERT имеет больше столбцов назначения, чем выражения
Теперь я сделал несколько вещей, например, чтобы гарантировать, что числа не указаны в кавычках, в кавычках (хотелось бы, чтобы руководство по таблицам относилось к целым числам, числовым типам и т.д.) после того, как я, очевидно, подсчитал количество имен столбцов и значения вставляются. Я также попытался убедиться, что все запятые запятые... действительно в растерянности здесь. Нет других столбцов, кроме id
, который является bigserial
primary key
.
Ответы
Ответ 1
Удалите лишний ()
:
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')
;
Ответ 2
У меня была похожая проблема при использовании композиции строк SQL с psycopg2
в Python, но проблема была немного другой. Мне не хватало запятой после одного из полей.
INSERT INTO parts_finishing
(id_part, id_finish, id_metal)
VALUES (
%(id_part)s <-------------------- missing comma
%(id_finish)s,
%(id_metal)s
);
Это заставило psycopg2
эту ошибку:
ОШИБКА: У INSERT больше целевых столбцов, чем выражений.
Ответ 3
Это произошло со мной в большой вставке, все было хорошо (запятая), мне потребовалось некоторое время, чтобы заметить, что я вставляю не в ту таблицу, конечно, БД не знает ваших намерений. Копи-паста - корень всего зла... :-)
Ответ 4
Я также столкнулся с той же проблемой. Она будет поднята, когда количество приведенных столбцов и значений столбцов не совпадают.
Ответ 5
INSERT INTO NAVIGATORS_DETAILS(
NAVIGATOR_NAME ,
NAVIGATOR_EMAIL ,
NAVIGATOR_GENDER ,
NAVIGATOR_COUNTRY_OF_RESIDENCE ,
NAVIGATOR_YEARS_OF_EXPERIENCE ,
NAVIGATOR_DOB ,
NAVIGATOR_SPELCIALIST ,
IS_ICF_CERTIFIED ,
ICF_NO ,
IS_VERIFIED ,
VERIFICATION_COUNTRY_ID ,
VERIFICATION_STATUS ,
NAVIGATOR_MOBILE ,
NAVIGATOR_BIO ,
NAVIGATOR_KEYWORDS
) VALUES (
'shrisom',
'[email protected]',
'MALE',
'India',
12,
'12/01/2019',
null,
false,
null,
false,
null,
'NOT_APPLIED'
'8961234500',
null,
null
)
Я также сталкиваюсь с той же проблемой. ОШИБКА: В INSERT больше целевых столбцов, чем в выражениях. ЛИНИЯ 16: NAVIGATOR_KEYWORDS