TheSPIMô -đun cung cấp kèo bóng đá c1 số ví dụ khả thi về việc sử dụngPostgreSQL: Tài liệu:(SPI) và kích hoạt. Mặc dù kèo bóng đá c1 chức năng này có một số giá trị theo cách riêng của chúng, nhưng chúng thậm chí còn hữu ích hơn như là ví dụ để sửa đổi cho mục đích của riêng bạn.
Mỗi nhóm chức kèo bóng đá c1 được mô tả dưới đây được cung cấp dưới dạng tiện ích mở rộng riêng biệt.
Check_primary_key ()
vàCheck_forign_key ()
được sử dụng để kiểm tra kèo bóng đá c1 ràng buộc khóa nước ngoài. (Tất nhiên, chức năng này đã được thay thế bởi cơ chế khóa nước ngoài tích hợp, nhưng mô-đun vẫn hữu ích làm ví dụ.)
Check_primary_key ()
Kiểm tra bảng tham chiếu. Để sử dụng, tạo kèo bóng đá c1Trước khi chèn hoặc cập nhật
Trình kèo bóng đá c1 bằng cách sử dụng chức năng này trên bảng tham chiếu bảng khác. Chỉ định là đối số kèo bóng đá c1: Tên cột của bảng tham chiếu tạo thành khóa ngoại, tên bảng được tham chiếu và tên cột trong bảng được tham chiếu tạo thành khóa chính/duy nhất.
Check_forign_key ()
Kiểm tra bảng được tham chiếu. Để sử dụng, tạo kèo bóng đá c1Trước khi xóa hoặc cập nhật
Trigger Sử dụng chức năng này trên bảng được tham chiếu bởi (kèo bóng đá c1) bảng khác. Chỉ định là đối số kích hoạt: Số lượng bảng tham chiếu mà chức năng phải thực hiện kiểm tra, hành động nếu tìm thấy khóa tham chiếu (Cascade
- Để xóa hàng tham chiếu,Hạn chế
- để hủy bỏ giao dịch nếu có kèo bóng đá c1 khóa tham chiếu tồn tại,setnull
- Để đặt kèo bóng đá c1 trường khóa tham chiếu thành NULL), tên cột của bảng được kích hoạt tạo thành khóa chính/duy nhất, sau đó tên bảng tham chiếu và tên cột (lặp lại cho nhiều bảng tham chiếu như được chỉ định bởi đối số đầu tiên). Lưu ý rằng kèo bóng đá c1 cột khóa chính/duy nhất phải được đánh dấu không phải null và nên có một chỉ mục duy nhất.
Có kèo bóng đá c1 ví dụ tronginfint.example
.
Từ lâu,PostgreSQLCó tính năng du hành thời gian tích hợp giữ thời gian chèn và xóa cho mỗi tuple. Điều này có thể được mô phỏng bằng cách sử dụng kèo bóng đá c1 chức năng này.Abstime
Nhập để lưu trữ ngày khi kèo bóng đá c1 tuple được chèn (start_date) và thay đổi/xóa (stop_date):
Tạo kèo bóng đá c1 MyTab (
kèo bóng đá c1 cột có thể được đặt tên bất cứ điều gì bạn thích, nhưng trong cuộc thảo luận này, chúng tôi sẽ gọi chúng là start_date và stop_date.
Khi kèo bóng đá c1 hàng mới được chèn, start_date thường được đặt thành thời gian hiện tại và stop_date thànhVô cực
. Trình kích hoạt sẽ tự động thay thế kèo bóng đá c1 giá trị này nếu dữ liệu được chèn chứa null trong kèo bóng đá c1 cột này.
Tuples có stop_date bằngVô cực
làhợp lệ bây giờ, và có thể được sửa đổi. kèo bóng đá c1 bộ dữ liệu với một stop_date hữu hạn không thể được sửa đổi nữa - bộ kích hoạt sẽ ngăn chặn nó.
Đối với một hàng có thể sửa đổi, khi cập nhật chỉ stop_date trong bộ tple được cập nhật sẽ được thay đổi (thành thời gian hiện tại) và một bộ xử lý mới với dữ liệu đã sửa đổi sẽ được chèn vào. Start_date trong tuple mới kèo bóng đá c1 sẽ được đặt thành thời gian hiện tại và stop_date thànhVô cực
.
Xóa không thực sự loại bỏ tuple mà chỉ đặt stop_date của nó thành thời gian hiện tại.
để truy vấn cho kèo bóng đá c1 bộ dữ liệuhợp lệ bây giờ, bao gồmstop_date = 'Infinity'
Trong truy vấn của điều kiện. .
Timetravel ()
là hàm kèo bóng đá c1 chung hỗ trợ hành vi này. Tạo ATrước khi chèn hoặc cập nhật hoặc xóa
Trình kích hoạt bằng cách sử dụng chức năng này trên mỗi bảng du lịch thời gian. Chỉ định hai đối số kích hoạt: tên thực tế của kèo bóng đá c1 cột start_date và stop_date.Text
. Trình kích hoạt sẽ lưu trữ tên của người dùng hiện tại vào kèo bóng đá c1 cột đầu tiên trong quá trình chèn, cột thứ hai trong quá trình cập nhật và thứ ba trong quá trình xóa.
set_timetravel ()
Cho phép bạn bật hoặc tắt du lịch thời gian cho kèo bóng đá c1 bảng.set_timetravel ('mytab', 1)
Sẽ bật TT cho kèo bóng đá c1MyTab
. set_timetravel ('mytab', 0)
Sẽ tắt TT cho kèo bóng đá c1MyTab
. Trong cả hai trường hợp, tình trạng cũ được báo cáo.
get_timetravel ()
Trả về trạng thái TT cho kèo bóng đá c1 mà không thay đổi nó.
Có kèo bóng đá c1 ví dụ trongtimetravel.example
.
Autoinc ()
là một kèo bóng đá c1 lưu trữ giá trị tiếp theo của chuỗi vào trường số nguyên. Điều này có một số trùng lặp với tích hợpCột nối tiếptính kèo bóng đá c1, nhưng nó không giống nhau:Autoinc ()
sẽ ghi đè kèo bóng đá c1 nỗ lực thay thế một giá trị trường khác trong quá trình chèn và tùy chọn nó có thể được sử dụng để tăng trường trong kèo bóng đá c1 bản cập nhật.
Để sử dụng, tạo ATrước khi chèn
(hoặc tùy chọnTrước khi chèn hoặc cập nhật
) Trình kích hoạt bằng hàm này. Chỉ định hai đối số kích hoạt: Tên của cột Số nguyên sẽ được sửa đổi và tên của đối tượng chuỗi sẽ cung cấp kèo bóng đá c1 giá trị.
Có kèo bóng đá c1 ví dụ trongAutoinc.example
.
insert_username ()
là một kèo bóng đá c1 lưu trữ tên người dùng hiện tại vào trường văn bản. Điều này có thể hữu ích để theo dõi người đã sửa đổi lần cuối một hàng cụ thể trong bảng.
Để sử dụng, tạo kèo bóng đá c1Trước khi chèn
và/hoặcCập nhật
Trình kèo bóng đá c1 bằng hàm này. Chỉ định một đối số kèo bóng đá c1 duy nhất: tên của cột văn bản sẽ được sửa đổi.
Có kèo bóng đá c1 ví dụ tronginsert_username.example
.
moddateTime ()
là một kèo bóng đá c1 lưu trữ thời gian hiện tại vào ADấu thời gian
Trường. Điều kèo bóng đá c1 có thể hữu ích để theo dõi thời gian sửa đổi cuối cùng của một hàng cụ thể trong bảng.
Để sử dụng, tạo kèo bóng đá c1Trước khi cập nhật
Trình kèo bóng đá c1 bằng cách sử dụng chức năng này. Chỉ định một đối số kèo bóng đá c1 duy nhất: tên của cột sẽ được sửa đổi.Dấu thời gian
hoặcdấu thời gian với múi giờ
.
Có kèo bóng đá c1 ví dụ trongmoddateTime.example
.