Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Chèn bằng PreparedStatement. Làm cách nào để tự động tăng ID?

Bỏ cột ra khỏi INSERT tuyên bố hoàn toàn . Nó sẽ được tạo bởi cơ sở dữ liệu. Truy vấn của bạn phải là:

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

Thứ hai, bạn phải thực hiện chèn trước, sau đó lấy các khóa ra khỏi kết quả.

Tôi tin rằng mã của bạn phải là:

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

Lưu ý rằng ví dụ này không kiểm tra sự thành công của câu lệnh đã thực thi hoặc sự tồn tại của các khóa trả về.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MYSQL group_concat tương đương trong Sybase ASE?

  2. Tóm tắt dữ liệu trong một bảng mới

  3. Cách CHỌN dựa trên giá trị của một CHỌN khác

  4. Chèn các giá trị hộp kiểm vào cơ sở dữ liệu

  5. truy vấn mysql:CHỌN DISTINCT cột 1, NHÓM THEO cột 2