我有以下两个表:
serial_table
id CHARACTER VARYING(20), serial_key CHARACTER VARYING(20), PRIMARY KEY(id, serial_key)
串口波特率:
id CHARACTER VARYING(20),
serial_key CHARACTER VARYING(20),
rate NUMERIC,
PRIMARY KEY(id, serial_key),
FOREIGN KEY (id, serial_key) REFERENCES serial_table(id, serial_key)
现在我想要通过单个SQL查询更新serial_rate.rate
和serial_table.serial_key
,例如: UPDATE inventory.serial_table AS s
JOIN inventory.serial_rate AS r
ON (s.id, s.serial_key) = (r.id, r.serial_key)
SET s.serial_key = '0002', r.rate = 22.53
WHERE (s.id, s.serial_key) = ('01', '002');
我知道这是不正确的。有没有可能的方法来做到这一点,因为我想使用该语句在Java中创建PreparedStatement?编辑 这个问题不是关于Java中的PreparedStatements,而是关于我希望在创建PreparedStatement时将SQL语法作为参数传递。 我不想得到任何关于PreparedStatement的答案。
serial_table.serial_key
这个主键组件吗?另外,是否也应该更新serial_rate.serial_key
(这也是一个主键组件,并且是第一个的外键)?如果不更新的话,可能会违反外键约束。 - wildplasser