首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用java实现mysql数据库的更新

问用java实现mysql数据库的更新
EN

Stack Overflow用户
提问于 2012-02-01 20:28:23
回答 2查看 525关注 0票数 0

我有一个程序,会每分钟更新一次。每次更新时,它要么添加时间、日期、需求,要么根据相同的时间和日期更新需求。但是,我当前的代码不允许我这样做。我已经尝试添加另一个代码来纠正这个问题,但它不起作用。有没有人知道如何添加约束,以便当它遇到相同的日期和时间,但不同的需求时,它会用新的需求更新数据库。而不是添加包含相同时间和日期但不同需求的新行。

我的原始代码:

代码语言:javascript
复制
preparedStatement = connect
.prepareStatement("insert into  testdb.emcsg values (?, ?, ? , ?, ?)");
preparedStatement.setInt(1, count+1);
preparedStatement.setString(2, d1);
preparedStatement.setString(3, d2);
preparedStatement.setString(4, d3);
preparedStatement.setString(5, d4);
preparedStatement.executeUpdate();

我编辑过的代码:

代码语言:javascript
复制
preparedStatement = connect
.prepareStatement("insert INTO testdb.emcsg values (?, ?, ? , ?, ?) ON DUPLICATE KEY UPDATE 5");
preparedStatement.setInt(1, count+1);
preparedStatement.setString(2, d1);
preparedStatement.setString(3, d2);
preparedStatement.setString(4, d3);
preparedStatement.setString(5, d4);
preparedStatement.executeUpdate();

这段经过编辑的代码出现了一个错误“您的SQL语法中有一个错误;”建议和帮助我们将不胜感激!

EN

回答 2

Stack Overflow用户

发布于 2012-02-01 20:33:56

代码语言:javascript
复制
insert into  testdb.emcsg (a, b, c, d, e) values (?, ?, ? , ?, ?) 
ON DUPLICATE KEY UPDATE e = ?

请注意,最好在insert语句中列出列名,而不是依赖于它们的定义顺序,并且让维护者知道这个顺序。

票数 3
EN

Stack Overflow用户

发布于 2012-02-01 20:34:43

从documentation可以看出,您可能需要引用要更新的列名。例如(a、b、c、d、e应替换为实际的列名):

代码语言:javascript
复制
preparedStatement = connect
.prepareStatement("insert INTO testdb.emcsg(a,b,c,d,e) values (?, ?, ? , ?, ?) ON DUPLICATE KEY UPDATE e=VALUES(e)");
preparedStatement.setInt(1, count+1);
preparedStatement.setString(2, d1);
preparedStatement.setString(3, d2);
preparedStatement.setString(4, d3);
preparedStatement.setString(5, d4);
preparedStatement.executeUpdate();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9095806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档