java - 通过java更新mysql数据库

标签 java mysql

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

我的原始代码:

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();

我编辑的代码:

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 语法有错误;”建议和帮助将不胜感激!

最佳答案

The documentation表明您必须在子句末尾进行赋值:

insert into  testdb.emcsg (a, b, c, d, e) values (?, ?, ? , ?, ?) 
ON DUPLICATE KEY UPDATE e = ?

请注意,最好在插入语句中列出列名,而不是依赖它们定义的顺序,以及维护者知道该顺序。

关于java - 通过java更新mysql数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9095806/

相关文章:

javascript - Lambda 将 SQL 传递到 RDS 数据 API 时出错

java - 如何以系统时间间隔15分钟从数据库获取数据?

java - 为什么 Java 中的同步可以保留多个线程更新的状态的可见性

java - 级联删除在更大数据集上的性能下降,这可能是由于缺乏索引造成的吗?

java - 为什么我的新鲜字符串前面有空?

mysql - MySQL 存储过程中每次迭代后暂停的循环是否会在暂停期间保持锁定?

Java 不工作且机器人不发送输入

php - 减少 mySQL 查询和时间

php - 如何通过 Laravel 事务表获取类(class)

mysql - 从drupal数据库用户表中获取记录