根据最后一个自动增量主键检索记录并在输入字段中查看
Posted
技术标签:
【中文标题】根据最后一个自动增量主键检索记录并在输入字段中查看【英文标题】:Retrieve a record base on last Auto Increment primary key and view in input field 【发布时间】:2017-04-10 06:55:59 【问题描述】:我想根据最后一个主键插入(ID)从数据库中的表中检索记录,这就是我的程序的样子,但是当我运行它时,它会返回到空白页。查询错了吗??
<div style="background:steelblue;">
<form action=saveRecord.jsp> <<----will save the record to other table
<%
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/dssps", "root", "admin");
String query = "select Did,ShipName,Origin,Port1 from decsfinal where Did=LAST_INSERT_ID()";
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(query);
if(rs.next())
%>
<label>ID</label>
<input name="Did" value="<%=rs.getInt("Did")%>">
</br>
<label>Ship Name</label>
<input name="ShipName" value="<%=rs.getString("ShipName")%>">
</br>
<label>Origin Port</label>
<input name="Origin" value="<%=rs.getString("Origin")%>">
</br>
<label>Destination Port</label>
<input name="Port1" value="<%=rs.getString("Port1")%>">
</br>
// here the submit button and close database
【问题讨论】:
【参考方案1】:last_insert_id() 方法正在检索 last_id+1 意味着如果您的最后一个 id 为 9,则它正在检索 10 并在 where 子句中进行比较,因此没有 id 等于 10 您的查询正在检索 null,试试这个查询(它对我有用)。
select Did,ShipName,Origin,Port1 from decsfinal where Did = Last_insert_id()-1;
或 如果您的主键(Did)设置为自动递增,您可以使用此查询来获得您想要的结果
select max(Did) , ShipName ,Origin,Port1 from decsfinal;
【讨论】:
以上是关于根据最后一个自动增量主键检索记录并在输入字段中查看的主要内容,如果未能解决你的问题,请参考以下文章