我目前的方法是这样的:
SELECT TOP 1 ID FROM DATAENTRY ORDER BY ID DESC
Run Code Online (Sandbox Code Playgroud)
这假设最新插入的项始终具有最高的唯一ID(主键,自动增量).这里闻起来有点不对劲.
备择方案?
我有这个代码试图在数据库中插入一条记录:
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作为返回值.
我有什么想法我做错了吗?