Cách đặt lại trình tự trong PostgreSQL

Cach Dat Lai Trinh Tu Trong Postgresql



Sử dụng trình tự PostgreSQL là một cách hiệu quả để làm việc với giá trị tăng tự động, đặc biệt đối với các khóa chính. Khi giá trị bắt đầu không được xác định, mức tăng tự động cho INT sẽ bắt đầu từ 0. Tuy nhiên, bạn có thể chỉ định giá trị bắt đầu nào sẽ sử dụng cho chuỗi trong cột tăng tự động của mình.

Hơn nữa, nếu gặp tình huống yêu cầu bạn thay đổi giá trị tiếp theo trong chuỗi, bạn có thể nhanh chóng đặt lại trình tự và chỉ định giá trị nào sẽ bắt đầu cho mục tiếp theo trong bảng. Tất cả chi tiết bạn nên biết về cách đặt lại trình tự trong PostgreSQL đều được trình bày chi tiết trong bài đăng này. Hãy nhìn xem!

Ví dụ về Cách đặt lại trình tự trong PostgreSQL

Với cột INT, bạn có thể tạo một chuỗi tăng tự động và sử dụng nó làm khóa chính cho bảng của mình. Bằng cách đó, bạn sẽ không cần nhập giá trị của nó khi chạy truy vấn INSERT vì các giá trị số nguyên sẽ được tạo tự động. Khi chuỗi được tạo, lệnh ALTER SEQUENCE cho phép bạn khởi động lại chuỗi và chỉ định giá trị bắt đầu mới cho các mục mới.







Trong ví dụ này, chúng tôi sẽ làm việc với bảng “user_details” sau. Trọng tâm của chúng tôi là cột “user_id”, là cột tăng tự động bắt đầu từ 100.





Để liệt kê các trình tự khác nhau trong cơ sở dữ liệu của bạn, hãy chạy lệnh sau:





\ds

Đối với trường hợp của chúng tôi, chúng tôi nhắm mục tiêu chuỗi “user_id”.



Để biết thêm chi tiết về trình tự, hãy chạy truy vấn “chọn” như minh họa trong phần sau:

CHỌN * TỪ chuỗi_name;

Chúng ta có thể thấy rằng giá trị cuối cùng trong chuỗi hiện có là 104. Chúng ta đặt lại giá trị này và xác định giá trị mới mà các mục mới sẽ có.

Để đặt lại trình tự PostgreSQL, hãy sử dụng lệnh sau:

THAY ĐỔI SEQUENCE chuỗi_name REBẮT ĐẦU VỚI giá trị;

Đối với trường hợp của chúng ta, giả sử chúng ta muốn khởi động lại trình tự và bắt đầu các mục mới ở số 20. Sau khi chạy lệnh sau, chúng ta nhận được một kết quả như minh họa dưới đây, xác nhận rằng trình tự đã bị thay đổi.

Nếu chạy lại lệnh trước đó để lấy thông tin chi tiết về chuỗi bằng câu lệnh SELECT, chúng ta có thể thấy rằng “last_value” mới cho trường hợp này là giá trị mà chúng ta đã chỉ định bằng lệnh ALTER.

Hãy chèn một mục mới vào bảng của chúng ta để xem điều gì sẽ xảy ra. Hình ảnh sau đây hiển thị truy vấn INSERT và kết quả mà chúng tôi nhận được sau khi chạy câu lệnh SELECT. Lưu ý cách mục nhập mới có “user_id” được đặt thành 20. Tất cả các mục nhập mới mà chúng tôi tạo sẽ có “user_id” được tạo dựa trên giá trị cuối cùng là 20.

Nếu chúng ta thực hiện một đầu vào khác, “user_id” của nó sẽ là 21 và trình tự sẽ tiếp tục sử dụng cùng một logic. Đó là cách bạn đặt lại trình tự trong PostgreSQL. Lưu ý rằng lệnh “đặt lại” không ảnh hưởng đến các bản ghi hiện có. Nó chỉ xác định giá trị bắt đầu mới cho các mục bạn thực hiện sau khi đặt lại trình tự.

Phần kết luận

Với PostgreSQL, việc có cách tự động tạo các giá trị số nguyên trong cột khóa chính của bạn sẽ đơn giản hóa mọi thứ. Khi bạn có một chuỗi hiện có, bạn có thể sử dụng ALTER SEQUENCE
lệnh với tùy chọn REStart WITH để chỉ định trình tự nào bạn muốn đặt lại và giá trị nào cần đặt làm giá trị cuối cùng trong trình tự. Bằng cách đó, các mục mới sẽ có giá trị nguyên được tạo dựa trên giá trị cuối cùng mới. Tham khảo ví dụ được trình bày để hiểu cách hoạt động của việc đặt lại trình tự PostgreSQL.