Làm thế nào để thiết lập Khóa chính tự động gia tăng PostgreSQL?

How Setup Postgresql Auto Increment Primary Key



Có thể có những trường hợp bạn xây dựng và duy trì các bảng trong PostgreSQL khi bạn muốn các giá trị cụ thể cho một cột được tạo theo yêu cầu. Điều này đặc biệt đúng đối với các cột id hoạt động như khóa chính của bảng. May mắn thay, kiểu giả SERIAL cho phép tạo chuỗi số nguyên tự động tăng dần thuận tiện. Chuỗi là một loại đối tượng cơ sở dữ liệu trong PostgreSQL tạo ra một loạt các chỉ mục hoặc số nguyên. Một chuỗi PostgreSQL tạo ra một chuỗi các số nguyên riêng biệt, làm cho nó phù hợp để được sử dụng làm khóa chính khi tạo một bảng mới. Chúng tôi sẽ chứng minh cho bạn biết menas tự động tăng nào trong PostgreSQL và chúng tôi sẽ sử dụng kiểu giả SERIAL trong suốt hướng dẫn này.

Cú pháp:

Cú pháp chung để tạo khóa chính tự động tăng như sau:







>>TẠO BẢNG_ Tên_bảng( TôiSERIAL);

Bây giờ chúng ta hãy xem xét chi tiết hơn về khai báo CREATE TABLE:



  • PostgreSQL tạo một thực thể chuỗi trước. Nó tạo ra giá trị tiếp theo trong chuỗi và đặt nó làm giá trị tham chiếu mặc định của trường.
  • PostgreSQL áp dụng hạn chế ngầm định KHÔNG ĐỦ cho trường id vì một chuỗi tạo ra các giá trị số.
  • Trường id sẽ được phân bổ làm chủ sở hữu của chuỗi. Nếu trường id hoặc bản thân bảng bị bỏ qua, trình tự sẽ bị loại bỏ.

Để có khái niệm về tự động tăng, hãy đảm bảo PostgreSQL được gắn và định cấu hình trên hệ thống của bạn trước khi tiếp tục với các hình minh họa trong hướng dẫn này. Mở trình bao dòng lệnh PostgreSQL từ màn hình nền. Thêm tên máy chủ của bạn mà bạn muốn làm việc trên đó, nếu không hãy để nó ở chế độ mặc định. Viết tên cơ sở dữ liệu nằm trong máy chủ của bạn mà bạn muốn làm việc trên đó. Nếu bạn không muốn thay đổi nó thì hãy để nó làm mặc định. Chúng tôi sẽ sử dụng cơ sở dữ liệu thử nghiệm, đó là lý do tại sao chúng tôi đã thêm nó. Bạn cũng có thể làm việc trên cổng mặc định 5432, nhưng bạn cũng có thể thay đổi nó. Cuối cùng, bạn phải cung cấp tên người dùng cho cơ sở dữ liệu bạn chọn. Để mặc định nếu bạn không muốn thay đổi. Nhập mật khẩu của bạn cho tên người dùng đã chọn và nhấn Enter từ bàn phím để bắt đầu sử dụng lệnh shell.







Sử dụng Từ khoá SERIAL làm Loại Dữ liệu:

Khi tạo bảng, chúng tôi thường không thêm từ khóa SERIAL vào trường cột chính. Điều này có nghĩa là chúng ta phải thêm các giá trị vào cột khóa chính trong khi sử dụng câu lệnh INSERT. Nhưng khi chúng tôi sử dụng từ khóa SERIAL trong truy vấn của mình trong khi tạo bảng, chúng tôi sẽ không cần thêm giá trị cột chính trong khi chèn giá trị. Hãy xem qua nó.

Ví dụ 01:

Tạo một bảng Kiểm tra với hai cột id và tên. Id cột đã được xác định là cột khóa chính vì kiểu dữ liệu của nó là SERIAL. Mặt khác, tên cột được định nghĩa là kiểu dữ liệu TEXT NOT NULL. Hãy thử lệnh dưới đây để tạo một bảng và bảng sẽ được tạo một cách hiệu quả như trong hình bên dưới.



>>TẠO BẢNG Kiểm tra( TôiKHÓA CHÍNH SERIAL, tên TEXT NOT NULL);

Hãy chèn một số giá trị vào tên cột của bảng KIỂM TRA mới được tạo. Chúng tôi sẽ không thêm bất kỳ giá trị nào vào id cột. Bạn có thể thấy rằng các giá trị đã được chèn thành công bằng lệnh INSERT như đã nêu bên dưới.

>>CHÈN VÀO Kiểm tra(Tên)GIÁ TRỊ(‘Aqsa’),('Rimsha'),(‘Khan’);

Đã đến lúc kiểm tra các bản ghi của bảng 'Test'. Hãy thử hướng dẫn CHỌN bên dưới trong trình bao lệnh.

>>LỰA CHỌN*Thử nghiệm TỪ;

Từ kết quả đầu ra bên dưới, bạn có thể nhận thấy rằng id cột đã tự động có một số giá trị trong đó mặc dù chúng tôi chưa thêm bất kỳ giá trị nào từ lệnh INSERT vì loại dữ liệu SERIAL mà chúng tôi đã chỉ định cho id cột. Đây là cách kiểu dữ liệu SERIAL tự hoạt động.

Ví dụ 02:

Một cách khác để kiểm tra giá trị của cột kiểu dữ liệu SERIAL là sử dụng từ khóa RETURNING trong lệnh INSERT. Khai báo dưới đây tạo một dòng mới trong bảng Kiểm tra và mang lại giá trị cho trường id:

>>CHÈN VÀO Kiểm tra(Tên)GIÁ TRỊ('Hassam')TRẢ LẠITôi;

Bằng cách kiểm tra các bản ghi của bảng Kiểm tra bằng cách sử dụng truy vấn SELECT, chúng tôi nhận được kết quả bên dưới như được hiển thị trong hình ảnh. Bản ghi thứ năm đã được thêm vào bảng một cách hiệu quả.

>>LỰA CHỌN*Thử nghiệm TỪ;

Ví dụ 03:

Phiên bản thay thế của truy vấn chèn ở trên đang sử dụng từ khóa DEFAULT. Chúng tôi sẽ sử dụng tên id cột trong lệnh INSERT và trong phần VALUES, chúng tôi sẽ đặt từ khóa DEFAULT làm giá trị của nó. Truy vấn dưới đây sẽ hoạt động tương tự khi thực thi.

>>CHÈN VÀO Kiểm tra(Tôi, Tên)GIÁ TRỊ(DEFAULT, 'Race');

Hãy kiểm tra lại bảng bằng cách sử dụng truy vấn SELECT như sau:

>>LỰA CHỌN*Thử nghiệm TỪ;

Bạn có thể thấy từ đầu ra bên dưới, giá trị mới đã được thêm vào trong khi id cột đã được tăng theo mặc định.

Ví dụ 04:

Số thứ tự của trường cột SERIAL có thể được tìm thấy trong một bảng trong PostgreSQL. Phương thức pg_get_serial_sequence () được sử dụng để thực hiện điều này. Chúng ta phải sử dụng hàm currval () cùng với phương thức pg_get_serial_sequence (). Trong truy vấn này, chúng tôi sẽ cung cấp tên bảng và tên cột SERIAL của nó trong các tham số của hàm pg_get_serial_sequence (). Như bạn có thể thấy, chúng tôi đã chỉ định Kiểm tra bảng và id cột. Phương pháp này được sử dụng trong ví dụ truy vấn dưới đây:

>>CHỌN giới hạn(pg_get_serial_sequence('Thử nghiệm', 'Tôi'));

Cần lưu ý rằng hàm currval () của chúng tôi giúp chúng tôi trích xuất giá trị gần đây nhất của trình tự, là 5. Hình ảnh dưới đây là minh họa về hiệu suất có thể trông như thế nào.

Phần kết luận:

Trong hướng dẫn hướng dẫn này, chúng tôi đã trình bày cách sử dụng kiểu giả SERIAL để tăng tự động trong PostgreSQL. Sử dụng một chuỗi trong PostgreSQL, thật đơn giản để tạo một tập hợp số tự động tăng dần. Hy vọng rằng bạn sẽ có thể áp dụng trường SERIAL cho các mô tả bảng bằng cách sử dụng các hình ảnh minh họa của chúng tôi làm tài liệu tham khảo.