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

Việc sử dụng trình tự PostgreSQL ở chế độ ngủ đông không ảnh hưởng đến bảng trình tự

Tôi đã từng gặp vấn đề tương tự. Nó liên quan đến các chiến lược cấp phát id của Hibernate. Khi bạn chọn GenerationType.SEQUENCE , Hibernate sử dụng chiến lược HiLo phân bổ ID theo các khối 50 theo mặc định. Vì vậy, bạn có thể đặt rõ ràng Kích thước phân bổ giá trị như thế này:

@Id 
@SequenceGenerator(name="pk_sequence",sequenceName="entity_id_seq", allocationSize=1)
@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="pk_sequence")
@Column(name="id", unique=true, nullable=false)
public int getId() {
    return this.id;
}

Mặc dù vậy, tôi cũng đã nghe ý kiến ​​rằng việc sử dụng chiến lược HiLo với deliverySize =1 không phải là một thực hành tốt. Một số người khuyên bạn nên sử dụng GenerationType.AUTO thay vào đó khi bạn phải xử lý các trình tự do cơ sở dữ liệu quản lý

Cập nhật: Cuối cùng, tôi đã sử dụng phân bổ kích thước =1 và mọi thứ dường như hoạt động như tôi mong đợi bây giờ. Ứng dụng của tôi đến nỗi tôi không thực sự cần các khối ID, vì vậy YMMV.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL và C # Datatypes

  2. Cách tốt nhất để tính kết quả trước khi LIMIT được áp dụng

  3. Làm thế nào để làm tròn số trung bình đến 2 chữ số thập phân trong PostgreSQL?

  4. Làm thế nào để đọc tất cả các hàng từ bảng lớn?

  5. Tạo ràng buộc duy nhất với cột rỗng