所以我从这开始......
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
之外,没有其他列。
答案 0 :(得分:25)
删除额外的()
:
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')
;
答案 1 :(得分:6)
在 Python 中将{strong> SQL 字符串组合与psycopg2
一起使用时,我遇到了类似的问题,但是问题略有不同。在其中一个字段之后,我缺少逗号。
INSERT INTO parts_finishing
(id_part, id_finish, id_metal)
VALUES (
%(id_part)s <-------------------- missing comma
%(id_finish)s,
%(id_metal)s
);
这导致psycopg2
产生此错误:
错误:INSERT的目标列多于表达式。
答案 2 :(得分:1)
我在使用PostgreSQL的Express js上遇到相同的错误
我解决了。这是我的答案。
插入记录时发生错误。
由于列名无效且值传递
而发生错误错误:INSERT的目标列多于表达式
错误:错误:INSERT的目标列多于表达式 名称:“错误”, 长度:116, 严重性:“错误”, 代码:“ 42601”, 详细信息:未定义, 提示:未定义, 位置:“ 294”, internalPosition:未定义, internalQuery:未定义, 其中:未定义, 模式:未定义, 表格:未定义, 列:未定义, dataType:未定义, 约束:未定义, 文件:“ analyze.c”, 行:“ 945”,
这是我的代码圆顶
INSERT INTO student(
first_name, last_name, email, phone
)
VALUES
($1, $2, $3, $4),
values
: [ first_name,
last_name,
email,
phone ]
答案 3 :(得分:0)
这发生在我的一个大插入中,一切正常(逗号分隔),我花了一段时间才注意到我正在插入错误表中,当然数据库不知道您的意图。 复制粘贴是所有邪恶的根源...:-)
答案 4 :(得分:0)
我也面临着同样的问题。当给定的列数和给定的列值不匹配时,将会出现此问题。