插入后获取所有自动生成的值
Get all automatically generated values after insert
将新行插入数据库后table可以像这样获取生成的主键的值:
PreparedStatement statement = connection.prepareStatement(query, Statement.RETURN_GENERATED_KEYS);
ResultSet keys = statement.getGeneratedKeys();
但是我如何检索其他不是键的自动生成的值。假设我的 table 定义如下所示:
CREATE TABLE foo (
id INT PRIMARY KEY AUTO_INCREMENT,
changed TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
是否可以通过返回的主键再次查询数据库,获取changed
列的值?
否,数据更改语句 INSERT、UPDATE 不会 return 字段 changed/inserted 的值。您可以要求最后一个密钥,但即使这样也是一个额外的 DBMS 调用。
将新行插入数据库后table可以像这样获取生成的主键的值:
PreparedStatement statement = connection.prepareStatement(query, Statement.RETURN_GENERATED_KEYS);
ResultSet keys = statement.getGeneratedKeys();
但是我如何检索其他不是键的自动生成的值。假设我的 table 定义如下所示:
CREATE TABLE foo (
id INT PRIMARY KEY AUTO_INCREMENT,
changed TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
是否可以通过返回的主键再次查询数据库,获取changed
列的值?
否,数据更改语句 INSERT、UPDATE 不会 return 字段 changed/inserted 的值。您可以要求最后一个密钥,但即使这样也是一个额外的 DBMS 调用。