Установить автоинкремент в предыдущее значение JAVA PreparedStatement MYSQL - PullRequest
1 голос
/ 11 января 2011

У меня есть 3 кнопки (добавить, сохранить, отменить).Если я нажимаю кнопку добавления, она автоматически генерирует автоматически увеличенное значение и отображается в текстовом поле.Если я нажимаю кнопку сохранения, он обновляет запись.Моя проблема в том, что когда я нажимаю кнопку отмены, я хочу иметь возможность удалить текущие добавленные данные и установить ключ автоинкремента на первичный ключ удаленных данных.Возможно ли это сделать?

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. "

1 Ответ

1 голос
/ 11 января 2011

Использование одинарных кавычек приведет к тому, что mysql преобразует значение auto_increment (целое число) в строку, что нежелательно

Удалите одинарную кавычку, как

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

Или

приведение empno.getText() в целое число

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...