我想对 RDBMS 表进行批量更新(通过 JDBC 在 Java 程序中),但我不确定如何在不为每条记录编写 UPDATE 语句的情况下实现它。
这是这个问题的粗略概述。我有一个名为 SUBS 的表,其中包含以下列和示例数据:
ID (int), Type(bool), D1 (date), D2 (date), D3 (date)
1000, 1, 2013-08-31, 2013-10-31, 2013-10-31
1001, 0, 2013-10-31, NULL, NULL
1002, 0, 2013-11-30, NULL, NULL
…
根据类型为 0 或 1,我要么只更新 D1,要么更新 D2 和 D3。在我的程序中,我有一个数据结构,包括 ID、类型和所需的新日期 (D1-D3)。我可以轻松地遍历这个数据结构并生成以下命令:
UPDATE SUBS SET D2 = “2014-01-31”, D3 = ‘2014-01-31’ WHERE ID = 1000
UPDATE SUBS SET D1 = “2013-12-31” WHERE ID = 1001
UPDATE SUBS SET D1 = “2014-01-31” WHERE ID = 1002
但是,有没有办法在单个 SQL 命令中执行此操作?或者可能有两个命令,每个类型(0 或 1)一个?