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

Trình tự mới được chỉ định không hoạt động

Tôi nghĩ rằng vấn đề của bạn là bạn thiết lập tất cả những điều này bằng tay thay vì sử dụng serial cột. Khi bạn sử dụng serial cột, PostgreSQL sẽ tạo chuỗi, thiết lập giá trị mặc định thích hợp và đảm bảo rằng chuỗi thuộc sở hữu của bảng và cột được đề cập. Từ hướng dẫn tốt :

Nhưng bạn không sử dụng serial hoặc bigserial vì vậy pg_get_serial_sequence sẽ không giúp được gì.

Bạn có thể khắc phục điều này bằng cách:

alter sequence new_user_messages_id owned by user_messages.id

Tôi không chắc liệu đây có phải là một giải pháp hoàn chỉnh hay không và ai đó (xin chào Erwin) có thể sẽ điền vào những phần còn thiếu.

Bạn có thể tự giải quyết một số rắc rối tại đây bằng cách sử dụng serial làm kiểu dữ liệu của id của bạn cột. Điều đó sẽ tạo và kết nối chuỗi cho bạn.

Ví dụ:

=> create sequence seq_test_id;
=> create table seq_test (id integer not null default nextval('seq_test_id'::regclass));
=> select pg_catalog.pg_get_serial_sequence('seq_test','id');
 pg_get_serial_sequence 
------------------------

(1 row)
=> alter sequence seq_test_id owned by seq_test.id;
=> select pg_catalog.pg_get_serial_sequence('seq_test','id');
 pg_get_serial_sequence 
------------------------
 public.seq_test_id
(1 row)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Trả lại danh sách các múi giờ được hỗ trợ bởi PostgreSQL

  2. PostgreSQL:tên ràng buộc mặc định

  3. Bộ đệm (Vòng tròn) trong PostGIS

  4. PostgreSQL chuyển dữ liệu từ CTE đệ quy vào hàm

  5. Cách tính toán tỷ lệ lưu giữ hàng tháng bằng cách sử dụng SQL