相关疑难解决方法(0)

SQL(Java,h2):检索刚插入数据库的单个项的唯一ID的最佳方法是什么?

我目前的方法是这样的:

SELECT TOP 1 ID FROM DATAENTRY ORDER BY ID DESC
Run Code Online (Sandbox Code Playgroud)

这假设最新插入的项始终具有最高的唯一ID(主键,自动增量).这里闻起来有点不对劲.

备择方案?

java sql jdbc h2 unique-id

13
推荐指数
2
解决办法
1万
查看次数

JDBC PreparedStatement始终返回1作为自动生成的密钥

我有这个代码试图在数据库中插入一条记录:

try {
 Connection conn = getConnection();

 String sql = 
   "INSERT INTO myTable(userId,content,timestamp) VALUES(?,?,NOW())";
 PreparedStatement st = 
    conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);

 st.setLong(1, userId);
 st.setString(2, content);
 id = st.executeUpdate(); //this is the problem line            
} catch(Exception e) {}
Run Code Online (Sandbox Code Playgroud)

问题是,虽然正确插入了记录,但我想要id包含刚刚插入的记录的主键+ auto_increment id.但是,由于某种原因,它总是返回'1'作为id,可能是因为userId插入期间值为1.

我的桌子是InnoDB.起初userId是另一个表的外键,不管我已经删除了外键,甚至是userId列上的索引,但我仍然得到1作为返回值.

我有什么想法我做错了吗?

java mysql jdbc

6
推荐指数
2
解决办法
7778
查看次数

标签 统计

java ×2

jdbc ×2

h2 ×1

mysql ×1

sql ×1

unique-id ×1