java8+mariadb 5.6:插入blob时如何获取自动生成的值

xzv2uavs  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(279)

我有一个mariadb表,其中有2列:rowid int pk autogenerated和imagen blob。
通过使用“callablestatement sequence=mariaconn.preparecall(myinsert);”我可以在“imagen”中添加一个带有blob的新行,但无法获取自动生成的pk col“rowid”。
另一方面,使用“语句语句=mariaconn.preparestatement(myinsert);”我可以得到自动生成的col“rowid”,但是我不能将blob添加到“imagen”中(只有当它为空时才这样做)。
有没有办法在一个电话里同时做这两件事(试图避免使用语句插入来获取pk,然后使用callablestatement来更新blob)。
注意:在oracle中,使用callablestatement非常简单,因为oracle的insert有一个“returning”子句<=我正在mariadb上模拟它。
提前谢谢。

csbfibhn

csbfibhn1#

插入blob不需要callablestatement,这是一个简单的准备语句

insert into table(imagen) values(?)

如果在准备过程中使用statement.return生成的\u键,在执行之后使用statement.getgeneratedkeys(),则可以获得自动生成的值。你也能做到

select last_insert_id()

任何时候都可以,但效率较低。
这里没有5.6 btw。

相关问题