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

Làm cách nào để đặt lại chuỗi khóa chính của postgres khi nó không đồng bộ?

-- Login to psql and run the following

-- What is the result?
SELECT MAX(id) FROM your_table;

-- Then run...
-- This should be higher than the last result.
SELECT nextval('your_table_id_seq');

-- If it's not higher... run this set the sequence last to your highest id. 
-- (wise to run a quick pg_dump first...)

BEGIN;
-- protect against concurrent inserts while you update the counter
LOCK TABLE your_table IN EXCLUSIVE MODE;
-- Update the sequence
SELECT setval('your_table_id_seq', COALESCE((SELECT MAX(id)+1 FROM your_table), 1), false);
COMMIT;

Nguồn - Diễn đàn Ruby



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tự động hóa các công việc hàng ngày của PostgreSQL bằng Jenkins

  2. Đặt hàng chuỗi varchar dưới dạng số

  3. PostgreSQL nơi tất cả trong mảng

  4. Python Postgres psycopg2 ThreadedConnectionPool đã cạn kiệt

  5. Truy xuất giá trị đã biết cuối cùng cho mỗi cột của hàng