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

khóa trùng lặp postgresql vi phạm ràng buộc duy nhất

Bài viết này giải thích rằng trình tự của bạn có thể không đồng bộ và bạn phải đưa trình tự này trở lại đồng bộ theo cách thủ công.

Đoạn trích từ bài viết trong trường hợp URL thay đổi:

Nếu bạn nhận được thông báo này khi cố gắng chèn dữ liệu vào PostgreSQLdatabase:

ERROR:  duplicate key violates unique constraint

Điều đó có thể có nghĩa là chuỗi khóa chính trong bảng mà bạn đang làm việc bằng cách nào đó đã trở nên không đồng bộ, có thể là do quá trình nhập khẩu khối lượng lớn (hoặc một cái gì đó dọc theo các dòng đó). Gọi nó là "thiết kế lỗi", nhưng có vẻ như bạn phải đặt lại thủ công chỉ mục khóa chính sau khi khôi phục từ tệp kết xuất. Ở bất kỳ mức độ nào, để xem các giá trị của bạn có không đồng bộ hay không, hãy chạy hai lệnh sau:

SELECT MAX(the_primary_key) FROM the_table;   
SELECT nextval('the_primary_key_sequence');

Nếu giá trị đầu tiên cao hơn giá trị thứ hai, trình tự của bạn không đồng bộ. Sao lưu cơ sở dữ liệu PG của bạn (chỉ trong trường hợp), sau đó chạy lệnh này:

SELECT setval('the_primary_key_sequence', (SELECT MAX(the_primary_key) FROM the_table)+1);

Điều đó sẽ đặt chuỗi thành giá trị có sẵn tiếp theo cao hơn bất kỳ khóa chính hiện có nào trong chuỗi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chọn các cột có tên cột cụ thể trong PostgreSQL

  2. Chèn các số không ở bên trái trong postgreSQL

  3. Lỗi khi cài đặt Psycopg2 trên MacOS 10.9.5

  4. Ràng buộc duy nhất về sự kết hợp của hai cột?

  5. Kiểu dữ liệu nào cho vĩ độ và kinh độ?