Nếu bạn muốn xác nhận ID và trả lại, bạn có thể sử dụng nextval ()
, giúp nâng cao trình tự mà không cần chèn bất kỳ dữ liệu nào.
Lưu ý rằng nếu đây là SERIAL
, bạn cần tìm tên của trình tự dựa trên bảng và tên cột, như sau:
Select nextval(pg_get_serial_sequence('my_table', 'id')) as new_id;
Không có gì đảm bảo chính xác rằng bạn sẽ thấy các ID này quay trở lại theo thứ tự (trình tự tạo chúng theo thứ tự, nhưng nhiều phiên có thể yêu cầu một ID và chưa sử dụng nó hoặc khôi phục lại một mã INSERT > và ID sẽ không được sử dụng lại) nhưng có sự đảm bảo rằng chúng sẽ là duy nhất, đây thường là điều quan trọng.
Nếu bạn làm điều này thường xuyên mà không thực sự sử dụng ID, cuối cùng bạn sẽ sử dụng hết tất cả các giá trị có thể có của số nguyên
32 bit (tức là đạt đến số nguyên có thể biểu diễn tối đa), nhưng nếu bạn chỉ sử dụng nó khi có nhiều khả năng bạn sẽ thực sự chèn một hàng với ID đó thì điều đó sẽ ổn.