Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wstaw przy użyciu przygotowanego oświadczenia. Jak automatycznie zwiększyć identyfikator?

Pozostaw kolumnę poza INSERT oświadczenie w całości . Zostanie wygenerowany przez silnik bazy danych. Twoje zapytanie powinno brzmieć:

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

Po drugie, musisz najpierw wykonać wstawianie, a następnie wyciągnąć klucze z wyniku.

Uważam, że Twój kod powinien wyglądać następująco:

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);

Zauważ, że ten przykład nie sprawdza powodzenia wykonanej instrukcji ani istnienia zwróconych kluczy.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ElasticSearch rzeki JDBC MySQL nie usuwa rekordów

  2. BŁĄD 1396 (HY000):Operacja DROP USER nie powiodła się dla „user”@„localhost”

  3. SELECT / GROUP BY - odcinki czasu (10 sekund, 30 sekund itd.)

  4. MySQL ORDER BY [niestandardowa wartość pola SET]

  5. Czy w MySQL jest rozróżniana wielkość liter w nazwach kolumn i tabel?