Mysql
 sql >> база данни >  >> RDS >> Mysql

Вмъкване с помощта на PreparedStatement. Как да увелича автоматично идентификатора?

Оставете колоната извън INSERT изявление изцяло . Той ще бъде генериран от двигателя на базата данни. Вашето запитване трябва да бъде:

INSERT INTO employee (time, name)
VALUES (?, ?)

Второ, първо трябва да извършите вмъкването, след това да извадите ключовете от резултата.

Вярвам, че кодът ви трябва да бъде:

PreparedStatement preparedStatement = 
    connect.prepareStatement("INSERT into employee (time, name) VALUES (?,?)", 
    Statement.RETURN_GENERATED_KEYS);

preparedStatement.setTimestamp(1, 
    new java.sql.Timestamp(new java.util.Date().getTime()));                           
preparedStatement.setString(2, "Test");

preparedStatement.executeUpdate();

ResultSet tableKeys = preparedStatement.getGeneratedKeys();
tableKeys.next();
int autoGeneratedID = tableKeys.getInt(1);

Обърнете внимание, че този пример не проверява успеха на изпълнения оператор или съществуването на върнати ключове.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Проблем със съвпадение на редове в базата данни с използване на PDO

  2. MySQL CAST като DATE

  3. Управление на разликите във форматите за дата между PHP и MySQL

  4. търсене от множество таблици с помощта на една ключова дума в mysql

  5. вземете реда с най-висока стойност в MySQL