Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将自动增量设置为上一个值JAVA PreparedStatement MYSQL_Java_Mysql_Prepared Statement_Auto Increment - Fatal编程技术网

将自动增量设置为上一个值JAVA PreparedStatement MYSQL

将自动增量设置为上一个值JAVA PreparedStatement MYSQL,java,mysql,prepared-statement,auto-increment,Java,Mysql,Prepared Statement,Auto Increment,我有3个按钮(添加、保存、取消)。如果我按下add按钮,它会自动生成一个自动递增的值,并显示在文本字段中。如果我按下保存按钮,它会更新记录。我的问题是,当我按下取消按钮时,我希望能够删除当前添加的数据,并将自动递增键设置为删除数据的主键。有可能这样做吗 dc.connect(); try { PreparedStatement st=dc.getConnection().prepareStatement("Delete from Employeemaste

我有3个按钮(添加、保存、取消)。如果我按下add按钮,它会自动生成一个自动递增的值,并显示在文本字段中。如果我按下保存按钮,它会更新记录。我的问题是,当我按下取消按钮时,我希望能够删除当前添加的数据,并将自动递增键设置为删除数据的主键。有可能这样做吗

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() + "'" 
进入

它成功了。是否可以将自动递增的值设置为文本字段中包含/输入的值

其他信息: 我得到的错误是

SQL语法有错误;请查看与MYSQL服务器版本对应的手册,以了解第1行“10003”附近要使用的正确语法


使用单引号将导致mysql将自动增量值(整数)转换为字符串,这是不可取的

去掉单个报价,如

"ALTER TABLE employeemaster AUTO_INCREMENT=" + empno.getText()


将empno.getText()转换为整数使用单引号将导致mysql将自动增量值(整数)转换为字符串,这是不可取的

去掉单个报价,如

"ALTER TABLE employeemaster AUTO_INCREMENT=" + empno.getText()

将empno.getText()转换为整数