gpt4 book ai didi

mysql,字段列表中的未知列

转载 作者:行者123 更新时间:2023-11-29 07:53:26 29 4
gpt4 key购买 nike

我有一个非常简单的数据库

create table if not exists customerdata(id VARCHAR(40) primary key, obj blob)

更新此表的一个过程

create procedure saveCustomer(IN customerid VARCHAR(40), IN customerobj blob)
BEGIN
INSERT INTO customerdata (id, obj) VALUES(customerid, customerobj)
ON DUPLICATE KEY UPDATE obj = VALUES(customerobj);
END

使用jdbc调用此过程

byte[] byteArray = bos.toByteArray();
String sql = "call saveCustomer(?,?)";
ps = connection.prepareStatement(sql);
ps.setString(1,customerid);
ps.setBytes(2,byteArray);
ps.execute();

但结果我得到以下异常:

com.mysql.jdbc.exceptions.jdbcd4.MySQLSyntaxErrorException: Unknown column 'customerobj' in 'field list'

当我尝试从 mysql 工作台调用该过程时,会发生同样的错误。

最佳答案

问题出在重复键上。它应该是:

INSERT INTO customerdata (id, obj) VALUES(customerid, customerobj)
ON DUPLICATE KEY UPDATE obj = customerobj;

或者:

INSERT INTO customerdata (id, obj) VALUES(customerid, customerobj)
ON DUPLICATE KEY UPDATE obj = VALUES(obj);

values() 语句使用表中的列名称,而不是值本身。

我还建议您在参数前加上 v_ 之类的前缀,这样它们就不太可能与列名混淆。

关于mysql,字段列表中的未知列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25809148/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com