1 jdbc google-apps-script google-cloud-sql
我的 Google Cloud SQL 数据库中有一个带有自动递增列的表。
如何INSERT通过 google-apps-script/JDBC 执行查询并获取新增加的列的值?
例如,我的专栏名为ticket_id. 我希望在结果集中返回INSERT新值。ticket_id
换句话说,如果我有以下结构,我需要修改什么或如何修改,以便我可以做类似的事情rs = stmt.getGeneratedKeys();
var conn = Jdbc.getCloudSqlConnection("jdbc:google:rdbms:.......
var stmt = conn.createStatement();
//build my INSERT sql statement
var sql = "insert into ......
var rs = stmt.executeUpdate(sql);
Run Code Online (Sandbox Code Playgroud)
我看到有一个 JDBC 语句类,其中有一个名为 的成员RETURN_GENERATED_KEYS,但到目前为止我还不够聪明,无法弄清楚如何正确操作它并获得我需要的东西。是RETURN_GENERATED_KEYS一个常量,还是一个属性,或者我该如何使用它?
Apps Script JDBC 服务的文档似乎有点缺乏。我为此创建了一个内部任务项。值得庆幸的是,Apps Script JDBC API 非常接近 Java JDBC API。关键是使用调用取回结果集stmt.getGeneratedKeys()。
我使用 MySQL 文档中的动物示例构建了一个示例表,下面的示例可以很好地配合该表并记录下一个递增的 ID。
function foo() {
var conn = Jdbc.getCloudSqlConnection("jdbc:google:rdbms://<instance>/<db>");
var stmt = conn.createStatement();
var sql = "INSERT INTO animals (name) VALUES ('dog')";
var count = stmt.executeUpdate(sql,1)//pass in any int for auto inc IDs back
var rs = stmt.getGeneratedKeys();
//if you are only expecting one row back, no need for while loop
// just do rs.next();
while(rs.next()) {
Logger.log(rs.getString(1));
}
rs.close();
stmt.close();
conn.close();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
918 次 |
| 最近记录: |