sql >> Databáze >  >> RDS >> Mysql

Vložte pomocí PreparedStatement. Jak mohu automaticky zvýšit ID?

Vynechejte sloupec v INSERT prohlášení zcela . Bude generován databázovým strojem. Váš dotaz by měl být:

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

Za druhé, musíte nejprve provést vložení a poté získat klíče z výsledku.

Věřím, že váš kód by měl být:

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

Všimněte si, že tento příklad nekontroluje úspěšnost provedeného příkazu nebo existenci vrácených klíčů.



  1. Jak zjistit oprávnění a role udělené uživateli v Oracle?

  2. Jak zvýšit maximální počet připojení v PostgreSQL

  3. Co v SQL znamená použití závorek s OR?

  4. Mám odstranit nebo zakázat řádek v relační databázi?