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

Truy xuất id nối tiếp từ các hàng được chèn hàng loạt trong postgresql

Một cái gì đó như thế này sẽ hoạt động:

// tell the driver you want the generated keys
stmt =  c.prepareStatement("INSERT ... ", Statement.RETURN_GENERATED_KEYS);

stmt.executeBatch();

// now retrieve the generated keys
ResultSet rs = stmt.getGeneratedKeys();
while (rs.next()) {
 int id = rs.getInt(1);
 .. save the id somewhere or update the items list 
}

Tôi nghĩ (tôi không chắc chắn!) rằng các khóa được trả về theo thứ tự chúng được tạo. Vì vậy, hàng đầu tiên từ ResultSet sẽ ánh xạ đến "mục" đầu tiên từ danh sách bạn đang xử lý. Nhưng hãy xác minh điều đó!

Chỉnh sửa

Nếu điều đó không hiệu quả, hãy thử chỉ định các cột thực tế mà các giá trị được tạo:

stmt =  c.prepareStatement("INSERT ... ", new String[] {"id"});



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Heroku - làm thế nào để kéo dữ liệu từ cơ sở dữ liệu vào cơ sở dữ liệu cục bộ?

  2. LÀM THẾ NÀO ĐỂ ĐƯA RA LÀ DECIMAL trong postgresql?

  3. Làm cách nào chúng ta có thể làm cho “statement_timeout” hoạt động bên trong một hàm?

  4. NHẬN CHẨN ĐOÁN với câu lệnh SAO CHÉP trong hàm Pl / pgsql

  5. Kết hợp các kết quả từ hai cơ sở dữ liệu riêng biệt