Cú pháp này không hợp lệ trong bất kỳ phiên bản nào của PostgreSQL:
ALTER SEQUENCE payments_id_seq LASTVALUE 22
Điều này sẽ làm việc:
ALTER SEQUENCE payments_id_seq RESTART WITH 22;
và tương đương với:
SELECT setval('payments_id_seq', 22, FALSE);
Thêm trong hướng dẫn hiện tại cho ALTER SEQUENCE
và chức năng trình tự .
Lưu ý rằng setval()
mong đợi (regclass, bigint)
hoặc (regclass, bigint, boolean)
. Trong ví dụ trên tôi đang cung cấp những chữ chưa được chỉnh sửa . Điều đó cũng làm việc. Nhưng nếu bạn cung cấp các biến được nhập cho hàm, bạn có thể cần các kiểu phôi rõ ràng để đáp ứng độ phân giải của hàm. Giống:
SELECT setval(my_text_variable::regclass, my_other_variable::bigint, FALSE);
Đối với các hoạt động lặp đi lặp lại, bạn có thể quan tâm:
ALTER SEQUENCE payments_id_seq START WITH 22; -- set default
ALTER SEQUENCE payments_id_seq RESTART; -- without value
START [WITH]
lưu trữ một RESTART
số mặc định , được sử dụng cho các RESTART
cuộc gọi tiếp theo mà không có giá trị. Bạn cần Postgres 8.4 trở lên cho phần cuối cùng.
setval()
có ít nhất hai đối số.