gpt4 book ai didi

java - 检测 UPDATE 语句中哪些 SQL 列发生了更改

转载 作者:太空宇宙 更新时间:2023-11-04 12:42:00 24 4
gpt4 key购买 nike

我有以下 Java 代码:

PreparedStatement statement = conn.prepareStatement(updateString);
statement.execute();

我知道执行之后,执行statement.getUpdateCount();会返回更新的行数。但是,有没有办法知道哪些列已更新?

问题在于,代码本身总是传递整组列值,即使其中一些值没有更改。

我希望能够判断特定列(例如“NAME”)是否由于底层准备好的 UPDATE 语句而发生更改。

编辑:我知道可以对该列进行选择,获取当前值,并与传入的新值进行比较以检测它是否会更改。然而,这意味着另一次数据库访问。本题是在调用该语句后判断是否可以通过某种 JDBC/SQL 通信机制来实现。

最佳答案

如果您只是批量更新每一列,无论新值是否与旧值不同,那么您可能必须在更新之前以编程方式选择并检查每个列值。

所以伪代码会是这样的:

select * from table where condition
execute
foreach row in result
foreach column in row
if (column != newColumn) document.write(column != newColumn);

PreparedStatement statement = conn.prepareStatement(updateString);
statement.execute();

关于java - 检测 UPDATE 语句中哪些 SQL 列发生了更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36750539/

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