Cách thực hiện tăng tự động PostgreSQL

Cach Thuc Hien Tang Tu Dong Postgresql



Một cách để đảm bảo danh tính duy nhất trong cơ sở dữ liệu PostgreSQL của bạn là sử dụng tính năng tăng tự động. Khi được bật, tính năng này sẽ tạo một mã nhận dạng duy nhất cho mỗi mục nhập mới trong bảng của bạn. Với tính năng tự động tăng, nếu bạn cố gắng chèn một giá trị mới có cùng mã định danh duy nhất, nó sẽ báo lỗi. Tính năng tăng tự động có thể được sử dụng trong các trường hợp khác nhau và bạn có thể xác định cách bạn muốn tạo mã định danh duy nhất. Thông tin chi tiết hơn về tính năng tự động tăng của PostgreSQL được trình bày chi tiết trong bài đăng này. Đọc tiếp!

Hai phương pháp tăng tự động PostgreSQL

Khi tạo cơ sở dữ liệu, bạn nên có khóa chính cho mỗi bảng để đảm bảo không có khóa trùng lặp nào xuất hiện trong các bảng. Một cách để tạo khóa chính là sử dụng tính năng tăng tự động cho kiểu dữ liệu INT. PostgreSQL tạo giá trị khóa chính cho tất cả các mục nhập, giúp nhà phát triển thoát khỏi rắc rối khi nhập khóa chính theo cách thủ công.

Có hai cách tiếp cận mà bạn có thể sử dụng để tạo mức tăng tự động trong cơ sở dữ liệu PostgreSQL của mình.







Phương pháp 1: Sử dụng Kiểu giả SERIAL

Cách mặc định để tạo mức tăng tự động cho các khóa chính trong cơ sở dữ liệu của bạn là sử dụng từ khóa SERIEL. Khi được sử dụng, kiểu giả SERIAL sẽ tạo một chuỗi để tạo ra các giá trị. Nó ghi lại giá trị tiếp theo trong chuỗi và bất cứ khi nào bạn chèn một giá trị mới, nó sẽ được gán một mã nhận dạng duy nhất.



Lưu ý rằng mức tăng tự động này được gán cho kiểu dữ liệu INT và sẽ bị xóa sau khi bảng hoặc cột bị loại bỏ.



Đây là cú pháp để tạo mức tăng tự động:





TẠO NÊN BÀN TABLE_NAME ( id dữ liệu SERIAL_type ) ;

Đối với trường hợp của chúng tôi, hãy tạo một bảng có tên là “chi tiết” chứa “user_id” làm khóa chính và gia tăng tự động của chúng tôi. Chúng tôi cũng bao gồm hai cột khác.



Khi chúng tôi muốn chèn các giá trị vào bảng của mình, chúng tôi chỉ chèn cho các cột khác và bỏ qua cột tăng tự động vì các giá trị của nó được tạo tự động. Đây là một ví dụ trong đó chúng tôi thêm năm mục vào bảng của mình:

Khi chúng tôi sử dụng câu lệnh SELECT để kiểm tra các bản ghi trong bảng, hãy lưu ý rằng cột “user_id” chứa các mã nhận dạng duy nhất, trong trường hợp của chúng tôi là các số bắt đầu từ 1. Đó là cách thực hiện việc tăng tự động PostgreSQL bằng cách sử dụng kiểu giả SERIAL.

Phương pháp 2: Tạo trình tự

Khi bạn sử dụng loại giả SERIAL để tạo các giá trị tăng tự động, bạn không kiểm soát cách tạo danh tính duy nhất của mình. Trong ví dụ trước, chúng ta đã thấy rằng danh tính duy nhất của chúng ta bắt đầu từ 1. Tuy nhiên, nếu bạn muốn kiểm soát các giá trị này, giả sử bạn muốn xác định thời điểm bắt đầu tạo chúng, bạn phải tạo một chuỗi tùy chỉnh.

PostgreSQL có tùy chọn SEQUENCE nơi bạn có thể chỉ định tên cột sẽ sử dụng để tăng tự động và xác định giá trị bắt đầu cho cột. Ví dụ: nếu muốn bắt đầu các giá trị từ 100, chúng tôi sẽ tạo chuỗi tùy chỉnh sau:

TẠO QUÁ TRÌNH cột_name start_value;

Sau khi tạo chuỗi, bây giờ bạn có thể tạo bảng của mình. Lưu ý rằng bạn phải sử dụng cùng tên cột mà bạn đã tạo một chuỗi như “nextval('holder')' cho bảng đã tạo. Bằng cách đó, PostgreSQL tham chiếu trình tự để biết thứ tự cần tuân theo khi tạo mã nhận dạng duy nhất cho các cột.

Chúng tôi chạy lệnh sau để tạo bảng của mình:

Tiến hành chèn các giá trị vào bảng đã tạo cho các cột liên quan.

Khi chúng tôi chạy truy vấn “chọn” để liệt kê các mục trong bảng, chúng tôi có thể thấy rằng chúng tôi đã kiểm soát được mức tăng tự động của mình. Cột “user_id” bắt đầu giá trị ở mức 100 và tạo các giá trị tiếp theo cho các mục nhập khác mà chúng tôi chèn vào bảng.

Đó là một cách khác để tạo mức tăng tự động cho PostgreSQL.

Phần kết luận

Việc tạo mức tăng tự động có lợi cho việc tạo tính duy nhất trong bảng của bạn. Khi bạn muốn xác định khóa chính cho bảng của mình, hãy sử dụng tính năng tăng tự động cho kiểu dữ liệu INT. PostgreSQL tự động tạo các giá trị, đảm bảo rằng không có giá trị trùng lặp nào tồn tại trong bảng của bạn. Chúng tôi đã xác định cách tạo mức tăng tự động cho PostgreSQL và cung cấp hai ví dụ về hai phương pháp mà bạn có thể sử dụng. Cả hai phương pháp đều có thể áp dụng tùy thuộc vào tình huống mà bạn gặp phải. Thử chúng ra!