PostgreSQL执行INSERT报错:表达式多于目标列(Python+Robot Framework场景)
问题根因
你本地编写的SQL语句本身列值数量是匹配的,报错是因为实际执行的SQL被额外插入了一个值00:
你写的VALUES子句是5个值:('Plano Platinum', 12, 60, now(),now()),但报错日志里实际执行的VALUES是6个值:('Plano Platinum',12,60,00,now(),now()),多出来的00导致值的数量超过了指定的5个列,触发语法错误。
排查方案
- 检查Robot Framework自动化测试用例中调用该SQL的传参逻辑:大概率是
price字段赋值60.00时,代码错误将小数点作为参数分隔符,把60.00拆成了60、00两个独立参数传入 - 打印自动化测试实际执行的完整SQL语句,确认参数拼接逻辑是否符合预期
- 如果使用参数化查询接口,确认传入的参数列表长度为5,和INSERT语句指定的列数一一对应
内容的提问来源于stack exchange,提问作者LeoZelig
相关产品推荐
相关产品推荐

