将Auto-Increment设置为之前的值JAVA PreparedStatement MYSQL
问题描述:
我有3个按钮(添加,保存,取消)。如果我按下添加按钮,它会自动生成一个自动递增的值并显示在文本字段中。如果我按保存按钮,它会更新记录。我的问题是,当我按下取消按钮时,我希望能够删除当前添加的数据并将自动增量键设置为已删除数据的主键。是否有可能做到这一点?将Auto-Increment设置为之前的值JAVA PreparedStatement MYSQL
dc.connect();
try {
PreparedStatement st=dc.getConnection().prepareStatement("Delete from Employeemaster where empno = '" + empno.getText() + "'");
i=st.executeUpdate();
if (i>0) {
dc.getConnection().commit();
}
} catch (Exception e) {
JOptionPane msg=new JOptionPane();
msg.showMessageDialog(this,"Database Error: "+e.getMessage());
}
dc.disconnect();
dc.connect();
try {
PreparedStatement st=dc.getConnection().prepareStatement("ALTER TABLE employeemaster AUTO_INCREMENT ='" + empno.getText() + "'");
i=st.executeUpdate();
if (i>0) {
dc.getConnection().commit();
}
} catch (Exception e) {
JOptionPane msg=new JOptionPane();
msg.showMessageDialog(this,"Database Error: "+e.getMessage());
}
我试着更换
ALTER TABLE employeemaster AUTO_INCREMENT ='" + empno.getText() + "'"
到
ALTER TABLE employeemaster AUTO_INCREMENT = 10003;
和它的工作。是否可以将自动递增的值设置为包含/输入到文本字段中的值?
附加信息: 我得到的错误是
“您的SQL语法错误;检查对应于您的MySQL服务器版本正确的语法使用手动近‘10003’在第1行“。
答
使用单引号的将导致MySQL的铸AUTO_INCREMENT值(整数)转换成字符串,这是不希望
地带的单引号,像
"ALTER TABLE employeemaster AUTO_INCREMENT=" + empno.getText()
或者
转换成empno.getText()
转换成整数
它工作。谢谢。 – cassrynne 2011-01-11 06:18:47