【发布时间】:2016-03-30 07:32:37
【问题描述】:
这就是我正在尝试做的事情。我有一个 Java 程序,可以将遥测流分解为各个原始字段。我将这些原始字段值传递到 MySQL 表中,其中每一列都是字段之一。在这个数据库中,我还有一个视图,它可以抓取所有遥测数据并根据原始数据(例如工程单位的原始计数)计算一些新的派生列。在我的 Java 程序中,插入后我想从 VIEW 中获取相应的行(原始 + 派生)并将该数据传递到其他地方。
最初我认为我可以简单地将原始数据插入到 VIEW 中,然后在 Java 程序的 ResultSet 中将行返回给我。不幸的是,数据没有在 ResultSet 中返回。
我现在要做的是将原始数据插入表中(这部分有效),获取主键,然后从 VIEW 中查找行。我正在努力的部分是从 INSERT 中检索主键。我正在使用从我的 Connection 对象生成的 PreparedStatement,并为它提供了 Statement.RETURN_GENERATED_KEYS。但是,当我在调用 executeUpdate() 后对我的语句调用 getGeneratedKeys() 时,我的 ResultSet 始终为空。我可以看到它在运行时将行插入到表中...我做错了什么?
如果主键是通过触发器生成的,我不能以这种方式检索生成的主键吗?
更新:我尝试将 Statement.RETURN_GENERATED_KEYS 换成具有主键列名称的字符串数组,但这似乎也不起作用。
我很抱歉没有包含我的代码,但我很难这样做。我已尽我所能描述我正在做的事情。
【问题讨论】:
标签: java mysql database triggers