Phiên bản được hỗ trợ:hiện tại(17) /16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3
Tài liệu này dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng kèo bóng đá hôm nay và ngày mai trang chohiện tạiPhiên bản hoặc một trong kèo bóng đá hôm nay và ngày mai phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

kèo bóng đá hôm nay và ngày mai5.3. Hạn chế

Kiểu dữ liệu là một cách để hạn chế loại dữ liệu có thể Được lưu trữ trong một bàn. Đối với nhiều ứng dụng, tuy nhiên, kèo bóng đá hôm nay và ngày mai Họ cung cấp là quá thô. Ví dụ: một cột chứa một Giá sản phẩm có lẽ chỉ nên chấp nhận các giá trị tích cực. Nhưng Không có loại dữ liệu tiêu chuẩn chỉ chấp nhận tích cực số. Một vấn đề khác là bạn có thể muốn hạn chế cột dữ liệu liên quan đến các cột hoặc hàng khác. Ví dụ, trong một bảng chứa thông tin sản phẩm, chỉ có một hàng cho mỗi số sản phẩm.

Đến cuối đó, SQL cho phép bạn xác định các kèo bóng đá hôm nay và ngày mai trên các cột và bảng. Các kèo bóng đá hôm nay và ngày mai cung cấp cho bạn nhiều quyền kiểm soát dữ liệu trong bàn của bạn như bạn muốn. Nếu người dùng cố gắng lưu trữ dữ liệu trong một Cột sẽ vi phạm một kèo bóng đá hôm nay và ngày mai, một lỗi được nêu ra. Cái này áp dụng ngay cả khi giá trị đến từ giá trị mặc định sự định nghĩa.

5.3.1. Kiểm tra Hạn chế

Một kèo bóng đá hôm nay và ngày mai kiểm tra là loại kèo bóng đá hôm nay và ngày mai chung nhất. Nó cho phép bạn chỉ định rằng giá trị trong một cột nhất định phải thỏa mãn biểu hiện boolean (giá trị sự thật). Ví dụ, đến Yêu cầu giá sản phẩm tích cực, bạn có thể sử dụng:

Tạo sản phẩm bảng (
    sản phẩm_no số nguyên,
    tên văn bản,
    Giá sốKiểm tra (Giá 0));

Như bạn thấy, định nghĩa kèo bóng đá hôm nay và ngày mai xuất hiện sau dữ liệu Loại, giống như định nghĩa giá trị mặc định. Giá trị mặc định và Các kèo bóng đá hôm nay và ngày mai có thể được liệt kê trong bất kỳ đơn đặt hàng. Một kèo bóng đá hôm nay và ngày mai kiểm tra bao gồm từ khóaKiểm tratheo sau là một biểu thức trong ngoặc đơn. Các kèo bóng đá hôm nay và ngày mai kiểm tra Biểu thức nên liên quan đến cột do đó bị hạn chế, nếu không thì kèo bóng đá hôm nay và ngày mai sẽ không quá nhiều ý nghĩa.

Bạn cũng có thể đặt cho kèo bóng đá hôm nay và ngày mai một tên riêng. Cái này làm rõ thông báo lỗi và cho phép bạn tham khảo kèo bóng đá hôm nay và ngày mai khi bạn cần thay đổi nó. Cú pháp là:

Tạo sản phẩm bảng (
    sản phẩm_no số nguyên,
    tên văn bản,
    Giá sốkèo bóng đá hôm nay và ngày mai tích cực_priceKiểm tra (Giá 0)
);

Vì vậy, để chỉ định một kèo bóng đá hôm nay và ngày mai được đặt tên, hãy sử dụng từ khóakèo bóng đá hôm nay và ngày maitheo sau là một định danh theo sau là định nghĩa kèo bóng đá hôm nay và ngày mai. (Nếu bạn không chỉ định một tên kèo bóng đá hôm nay và ngày mai theo cách này, hệ thống chọn tên cho Bạn.)

Một kèo bóng đá hôm nay và ngày mai kiểm tra cũng có thể tham khảo một số cột. Nói bạn lưu trữ một mức giá thường xuyên và giá chiết khấu, và bạn muốn để đảm bảo rằng giá chiết khấu thấp hơn so với thông thường giá:

Tạo sản phẩm bảng (
    sản phẩm_no số nguyên,
    tên văn bản,
    Kiểm tra số giá (Giá 0),
    Trở nên chiết khấu_price kiểm tra số (chiết khấu_price 0),Kiểm tra (Giá Giảm giá_price));

Hai kèo bóng đá hôm nay và ngày mai đầu tiên sẽ trông quen thuộc. Thứ ba người ta sử dụng một cú pháp mới. Nó không được gắn vào một cụ thể thay vào đó, nó xuất hiện dưới dạng một mục riêng biệt trong Danh sách cột được phân tách bằng dấu phẩy. Định nghĩa cột và những điều này Định nghĩa kèo bóng đá hôm nay và ngày mai có thể được liệt kê theo thứ tự hỗn hợp.

Chúng tôi nói rằng hai kèo bóng đá hôm nay và ngày mai đầu tiên là cột các kèo bóng đá hôm nay và ngày mai, trong khi cái thứ ba là một kèo bóng đá hôm nay và ngày mai bảng bởi vì nó được viết riêng biệt với bất kỳ một cột nào sự định nghĩa. Các kèo bóng đá hôm nay và ngày mai cột cũng có thể được viết dưới dạng bảng các kèo bóng đá hôm nay và ngày mai, trong khi điều ngược lại không nhất thiết là có thể, vì một kèo bóng đá hôm nay và ngày mai cột chỉ được đề cập đến Cột nó được gắn vào. (PostgreSQLkhông thực thi quy tắc đó, nhưng Bạn nên làm theo nó nếu bạn muốn định nghĩa bảng của mình hoạt động với kèo bóng đá hôm nay và ngày mai hệ thống cơ sở dữ liệu khác.) Ví dụ trên cũng có thể là Viết như:

Tạo sản phẩm bảng (
    sản phẩm_no số nguyên,
    tên văn bản,
    Giá số,
    Kiểm tra (Giá 0),
    giảm chiết khấu_price số,
    Kiểm tra (chiết khấu_price 0),
    Kiểm tra (Giá Giảm giá_price)
);

hoặc thậm chí:

Tạo sản phẩm bảng (
    sản phẩm_no số nguyên,
    tên văn bản,
    Kiểm tra số giá (Giá 0),
    giảm chiết khấu_price số,
    Séc (chiết khấu_price 0 và giá chiết khấu_price)
);

Đó là vấn đề của hương vị.

Tên có thể được gán cho các kèo bóng đá hôm nay và ngày mai bảng theo cùng một cách Như các kèo bóng đá hôm nay và ngày mai cột:

Tạo sản phẩm bảng (
    sản phẩm_no số nguyên,
    tên văn bản,
    Giá số,
    Kiểm tra (Giá 0),
    giảm chiết khấu_price số,
    Kiểm tra (chiết khấu_price 0),kèo bóng đá hôm nay và ngày mai hợp lệ_discountKiểm tra (Giá Giảm giá_price)
);

Cần lưu ý rằng một kèo bóng đá hôm nay và ngày mai kiểm tra được thỏa mãn nếu Biểu thức kiểm tra đánh giá thành giá trị true hoặc null. Từ Hầu hết các biểu thức sẽ đánh giá đến giá trị null nếu bất kỳ toán hạng nào là null, chúng sẽ không ngăn chặn các giá trị null trong cột. Để đảm bảo rằng một cột không chứa các giá trị null, kèo bóng đá hôm nay và ngày mai không có null được mô tả trong phần tiếp theo có thể là đã sử dụng.

5.3.2. Các kèo bóng đá hôm nay và ngày mai không có null

Một kèo bóng đá hôm nay và ngày mai không có null chỉ cần chỉ định rằng một cột phải không giả sử giá trị null. Ví dụ về cú pháp:

Tạo sản phẩm bảng (
    Product_No Integerkhông null,,
    Tên văn bảnkhông null,,
    Giá số
);

Một kèo bóng đá hôm nay và ngày mai không có null luôn được viết làm cột kèo bóng đá hôm nay và ngày mai. Một kèo bóng đá hôm nay và ngày mai không có null tương đương về mặt chức năng Tạo kèo bóng đá hôm nay và ngày mai kiểm traKiểm tra (Cột_namekhông phải là null),, Nhưng trongPostgreSQLTạo một Rõ ràng không phải là kèo bóng đá hôm nay và ngày mai không có hiệu quả hơn. Hạn chế là Rằng bạn không thể đưa ra tên rõ ràng cho các kèo bóng đá hôm nay và ngày mai không null đã tạo theo cách này.

Tất nhiên, một cột có thể có nhiều hơn một kèo bóng đá hôm nay và ngày mai. Chỉ Viết các kèo bóng đá hôm nay và ngày mai lần lượt:

Tạo sản phẩm bảng (
    Product_no Integer không phải NULL,
    Tên văn bản không phải null,
    Giá số không kiểm tra null (Giá 0)
);

Thứ tự không quan trọng. Nó không nhất thiết phải xác định theo thứ tự các kèo bóng đá hôm nay và ngày mai được kiểm tra.

Thekhông nullkèo bóng đá hôm nay và ngày mai có một nghịch đảo: Thenullkèo bóng đá hôm nay và ngày mai. Cái này không có nghĩa là cột phải là null, chắc chắn sẽ là vô dụng. Thay vào đó, điều này chỉ cần chọn hành vi mặc định Rằng cột có thể là null. Thenullkèo bóng đá hôm nay và ngày mai không có trong SQL Tiêu chuẩn và không nên được sử dụng trong các ứng dụng di động. (Nó chỉ được thêm vàoPostgreSQLĐể tương thích với một số hệ thống cơ sở dữ liệu khác.) Một số người dùng, Tuy nhiên, giống như nó bởi vì nó giúp bạn dễ dàng chuyển đổi kèo bóng đá hôm nay và ngày mai trong một tập tin tập lệnh. Ví dụ: bạn có thể bắt đầu với:

Tạo sản phẩm bảng (
    sản phẩm_no số nguyên null,
    tên văn bản null,
    Giá null số
);

và sau đó chènkhôngTừ khóa nơi mong muốn.

Tip:Trong hầu hết kèo bóng đá hôm nay và ngày mai thiết kế cơ sở dữ liệu, phần lớn kèo bóng đá hôm nay và ngày mai cột phải được đánh dấu không phải null.

5.3.3. Độc nhất Hạn chế

Các kèo bóng đá hôm nay và ngày mai duy nhất đảm bảo rằng dữ liệu có trong a cột, hoặc một nhóm các cột, là duy nhất trong số tất cả các hàng trong bàn. Cú pháp là:

Tạo sản phẩm bảng (
    Product_No Integerđộc đáo,,
    tên văn bản,
    Giá số
);

Khi được viết dưới dạng kèo bóng đá hôm nay và ngày mai cột và:

Tạo sản phẩm bảng (
    sản phẩm_no số nguyên,
    tên văn bản,
    Giá số,độc đáo (sản phẩm_no));

Khi được viết dưới dạng kèo bóng đá hôm nay và ngày mai bảng.

Để xác định một kèo bóng đá hôm nay và ngày mai duy nhất cho một nhóm các cột, hãy viết nó như một kèo bóng đá hôm nay và ngày mai bảng với các tên cột được phân tách bởi dấu phẩy:

Tạo ví dụ bảng (
    kèo bóng đá hôm nay và ngày mai số nguyên,
    b số nguyên,
    C Số nguyên,độc đáo (a, c));

Điều này chỉ định rằng sự kết hợp của kèo bóng đá hôm nay và ngày mai giá trị trong kèo bóng đá hôm nay và ngày mai cột được chỉ định là duy nhất trên toàn bộ bảng, mặc dù bất kỳ Một trong kèo bóng đá hôm nay và ngày mai cột không cần phải (và thông thường không) độc nhất.

Bạn có thể gán tên của riêng mình cho một kèo bóng đá hôm nay và ngày mai duy nhất, trong Cách thông thường:

Tạo sản phẩm bảng (
    Product_No Integerkèo bóng đá hôm nay và ngày mai phải_be_differentđộc đáo,
    tên văn bản,
    Giá số
);

Thêm một kèo bóng đá hôm nay và ngày mai duy nhất sẽ tự động tạo một Chỉ mục B-Tree duy nhất trên cột hoặc nhóm các cột được liệt kê trong các kèo bóng đá hôm nay và ngày mai. Một hạn chế độc đáo chỉ bao gồm một số Hàng không thể được viết như một kèo bóng đá hôm nay và ngày mai duy nhất, nhưng nó là possible to enforce such a restriction by creating a uniquePostgreSQL: Tài liệu: 9.1: Chỉ kèo bóng.

Nói chung, một kèo bóng đá hôm nay và ngày mai duy nhất bị vi phạm nếu có nhiều hơn hơn một hàng trong bảng trong đó các giá trị của tất cả Các cột bao gồm trong kèo bóng đá hôm nay và ngày mai là bằng nhau. Tuy nhiên, hai null Các giá trị không bao giờ được coi là bằng nhau trong so sánh này. Cái đó có nghĩa là ngay cả với sự hiện diện của một kèo bóng đá hôm nay và ngày mai độc đáo, nó là có thể lưu trữ các hàng trùng lặp có chứa giá trị null trong ít nhất một trong các cột bị kèo bóng đá hôm nay và ngày mai. Hành vi này phù hợp Theo tiêu chuẩn SQL, nhưng chúng tôi đã nghe nói rằng các cơ sở dữ liệu SQL khác có thể không tuân theo quy tắc này. Vì vậy, hãy cẩn thận khi phát triển các ứng dụng được dự định là di động.

5.3.4. Sơ đẳng Chìa khóa

Một kèo bóng đá hôm nay và ngày mai khóa chính chỉ ra rằng một cột hoặc nhóm của các cột, có thể được sử dụng như một định danh duy nhất cho các hàng trong bàn. Điều này đòi hỏi các giá trị là cả độc đáo và không vô giá trị. Vì vậy, hai định nghĩa bảng sau đây chấp nhận giống nhau Dữ liệu:

Tạo sản phẩm bảng (
    Product_no Integer độc đáo không phải NULL,
    tên văn bản,
    Giá số
);
Tạo sản phẩm bảng (
    Product_No IntegerKhóa chính,,
    tên văn bản,
    Giá số
);

Các phím chính có thể kéo dài nhiều hơn một cột; Cú pháp là Tương tự như các kèo bóng đá hôm nay và ngày mai duy nhất:

Tạo ví dụ bảng (
    kèo bóng đá hôm nay và ngày mai số nguyên,
    b số nguyên,
    C Số nguyên,Khóa chính (A, C));

Thêm khóa chính sẽ tự động tạo một Chỉ mục B-Tree trên cột hoặc nhóm các cột được liệt kê trong Khóa chính và sẽ kèo bóng đá hôm nay và ngày mai (các) cột được đánh dấukhông null.

Bảng có thể có nhiều nhất một khóa chính. (Có thể có bất kỳ số lượng các kèo bóng đá hôm nay và ngày mai duy nhất và không khống, đó là về mặt chức năng gần như giống nhau, nhưng chỉ có một được xác định là khóa chính.) Lý thuyết cơ sở dữ liệu quan hệ ra lệnh rằng mỗi bảng phải có một khóa chính. Quy tắc này là không được thi hành bởiPostgreSQL,, nhưng thường là tốt nhất để theo dõi nó.

Khóa chính hữu ích cả cho mục đích tài liệu và cho kèo bóng đá hôm nay và ngày mai ứng dụng khách hàng. Ví dụ: một ứng dụng GUI cho phép sửa đổi kèo bóng đá hôm nay và ngày mai giá trị hàng có thể cần phải biết chính Khóa của một bảng để có thể xác định kèo bóng đá hôm nay và ngày mai hàng độc đáo. Có cũng là nhiều cách khác nhau trong đó hệ thống cơ sở dữ liệu sử dụng Khóa chính nếu một người đã được khai báo; Ví dụ: chính Khóa xác định (kèo bóng đá hôm nay và ngày mai) cột mục tiêu mặc định cho kèo bóng đá hôm nay và ngày mai khóa nước ngoài tham chiếu bảng của nó.

5.3.5. Chìa khóa nước ngoài

Một kèo bóng đá hôm nay và ngày mai khóa nước ngoài chỉ định rằng các giá trị trong a cột (hoặc một nhóm cột) phải khớp với các giá trị xuất hiện Trong một số hàng của một bảng khác. Chúng tôi nói điều này duy trìTính toàn vẹn tham chiếugiữa hai kèo bóng đá hôm nay và ngày mai bảng liên quan.

nói rằng bạn có bảng sản phẩm mà chúng tôi đã sử dụng kèo bóng đá hôm nay và ngày mai số Thời gian rồi:

Tạo sản phẩm bảng (
    sản phẩm_no khóa chính số nguyên,
    tên văn bản,
    Giá số
);

Hãy giả sử bạn có một bảng lưu trữ đơn đặt hàng của những người đó các sản phẩm. Chúng tôi muốn đảm bảo rằng bảng đơn đặt hàng chỉ chứa Đơn đặt hàng các sản phẩm thực sự tồn tại. Vì vậy, chúng tôi xác định một nước ngoài kèo bóng đá hôm nay và ngày mai chính trong bảng đơn đặt hàng tham chiếu các sản phẩm bàn:

Tạo đơn đặt hàng bảng (
    Order_id Số nguyên chính, khóa chính,
    Product_No IntegerTài liệu tham khảo Sản phẩm (sản phẩm_no),,
    Số lượng số lượng
);

Bây giờ không thể tạo đơn đặt hàng vớisản phẩm_nokèo bóng đá hôm nay và ngày mai mục không xuất hiện trong Bảng sản phẩm.

Chúng tôi nói rằng trong tình huống này, bảng đơn đặt hàng làTham chiếuBảng và kèo bóng đá hôm nay và ngày mai sản phẩm Bảng làđược tham chiếuBảng. Tương tự, có kèo bóng đá hôm nay và ngày mai cột tham chiếu và tham chiếu.

Bạn cũng có thể rút ngắn lệnh trên thành:

Tạo đơn đặt hàng bảng (
    Order_id Số nguyên chính, khóa chính,
    Product_No IntegerTài liệu tham khảo Sản phẩm,,
    Số lượng số lượng
);

Vì không có cột liệt kê, khóa chính của Bảng được tham chiếu được sử dụng làm (kèo bóng đá hôm nay và ngày mai) cột được tham chiếu.

Khóa ngoại cũng có thể hạn chế và tham khảo một nhóm cột. Như thường lệ, sau đó nó cần được viết trong bảng hình thức kèo bóng đá hôm nay và ngày mai. Đây là một ví dụ về cú pháp giả tạo:

Tạo bảng T1 (
  kèo bóng đá hôm nay và ngày mai khóa chính số nguyên,
  b số nguyên,
  C Số nguyên,Khóa nước ngoài (b, c) Tài liệu tham khảo khác_table (C1, C2));

Tất nhiên, số và loại của các cột bị kèo bóng đá hôm nay và ngày mai cần khớp với số và loại của tham chiếu các cột.

Bạn có thể gán tên của riêng mình cho một kèo bóng đá hôm nay và ngày mai khóa nước ngoài, theo cách thông thường.

Một bảng có thể chứa nhiều hơn một kèo bóng đá hôm nay và ngày mai khóa nước ngoài. Điều này được sử dụng để thực hiện các mối quan hệ nhiều-nhiều giữa bàn. Nói rằng bạn có bảng về sản phẩm và đơn đặt hàng, nhưng bây giờ Bạn muốn cho phép một đơn hàng có thể chứa nhiều sản phẩm (mà cấu trúc trên không cho phép). Bạn có thể sử dụng cái này Cấu trúc bảng:

Tạo sản phẩm bảng (
    sản phẩm_no khóa chính số nguyên,
    tên văn bản,
    Giá số
);

Tạo đơn đặt hàng bảng (
    Order_id Số nguyên chính, khóa chính,
    Text_address văn bản,
    ...
);

Tạo bảng thứ tự_items (
    sản phẩm_no kèo bóng đá hôm nay và ngày mai sản phẩm tham chiếu số nguyên,
    Order_id Integer TÀI LIỆU THAM KHẢO ĐẶT HÀNG,
    số lượng số lượng,
    PRIMARY KEY (product_no, order_id)
);

Lưu ý rằng khóa chính chồng chéo với kèo bóng đá hôm nay và ngày mai khóa nước ngoài trong bảng cuối cùng.

Chúng tôi biết rằng kèo bóng đá hôm nay và ngày mai khóa nước ngoài không cho phép tạo ra kèo bóng đá hôm nay và ngày mai đơn đặt hàng không liên quan đến bất kỳ sản phẩm. Nhưng điều gì sẽ xảy ra nếu một sản phẩm là Đã xóa sau khi một đơn đặt hàng được tạo ra tham chiếu nó? SQL allows you to handle that as well. Theo trực giác, chúng ta có một vài tùy chọn:

  • Không cho phép xóa sản phẩm được tham chiếu

  • Xóa kèo bóng đá hôm nay và ngày mai đơn đặt hàng

  • cái gì khác?

Để minh họa điều này, hãy thực hiện chính sách sau Ví dụ về mối quan hệ nhiều-nhiều ở trên: Khi ai đó muốn để xóa kèo bóng đá hôm nay và ngày mai sản phẩm vẫn được tham chiếu theo đơn đặt hàng (quaorder_items), chúng tôi không cho phép nó. Nếu như ai đó xóa một đơn đặt hàng, kèo bóng đá hôm nay và ngày mai mục đặt hàng bị xóa dưới dạng Tốt:

Tạo sản phẩm bảng (
    sản phẩm_no khóa chính số nguyên,
    tên văn bản,
    Giá số
);

Tạo đơn đặt hàng bảng (
    Order_id Số nguyên chính, khóa chính,
    Text_address văn bản,
    ...
);

Tạo bảng thứ tự_items (
    Sản phẩm_NO Tài liệu tham khảo Sản phẩmKhi xóa hạn chế,,
    Order_id Integer TÀI LIỆU THAM KHẢO Đơn đặt hàngKhi xóa Cascade,,
    số lượng số lượng,
    Khóa chính (sản phẩm_no, order_id)
);

Hạn chế và xếp tầng xóa là hai cái phổ biến nhất tùy chọn.Hạn chếNgăn chặn xóa kèo bóng đá hôm nay và ngày mai hàng được tham chiếu.Không hành độngCó nghĩa là Nếu bất kỳ hàng tham chiếu nào vẫn tồn tại khi kèo bóng đá hôm nay và ngày mai là đã kiểm tra, một lỗi được nêu ra; Đây là hành vi mặc định nếu Bạn không chỉ định bất cứ điều gì. (Sự khác biệt thiết yếu giữa Hai lựa chọn này làKhông hành độngCho phép kiểm tra được hoãn lại cho đến sau này trong giao dịch, trong khiHạn chếkhông.)CascadeChỉ định rằng khi hàng được tham chiếu là đã xóa, hàng tham chiếu nó phải được tự động xóa cũng vậy. Có hai tùy chọn khác:Đặt VÔ GIÁ TRỊĐặt mặc định. Những nguyên nhân này các cột tham chiếu được đặt thành null hoặc giá trị mặc định, tương ứng, khi hàng tham chiếu bị xóa. Lưu ý rằng Những điều này không bào chữa cho bạn khỏi việc quan sát bất kỳ kèo bóng đá hôm nay và ngày mai. Vì Ví dụ, nếu một hành động chỉ địnhĐặt MẶC ĐỊNHNhưng giá trị mặc định sẽ không thỏa mãn Khóa nước ngoài, hoạt động sẽ thất bại.

Tương tự nhưtrên xóaCó Mà cònKhi cập nhậtđược gọi khi A Cột được tham chiếu được thay đổi (cập nhật). kèo bóng đá hôm nay và ngày mai hành động có thể giống nhau.

kể từ AXóacủa kèo bóng đá hôm nay và ngày mai hàng từ Bảng được tham chiếu hoặc kèo bóng đá hôm nay và ngày maiCập nhậtcủa a Cột được tham chiếu sẽ yêu cầu quét bảng tham chiếu Đối với các hàng phù hợp với giá trị cũ, nó thường là một ý tưởng tốt để Chỉ mục các cột tham chiếu. Bởi vì điều này không phải lúc nào cũng cần thiết, và có nhiều lựa chọn có sẵn về cách lập chỉ mục, Tuyên bố kèo bóng đá hôm nay và ngày mai khóa nước ngoài không tự động Tạo một chỉ mục trên các cột tham chiếu.

Thông tin thêm về việc cập nhật và xóa dữ liệu là trongChương 6.

Cuối cùng, chúng ta nên đề cập rằng khóa nước ngoài phải tham khảo các cột là khóa chính hoặc tạo thành một kèo bóng đá hôm nay và ngày mai. Nếu khóa nước ngoài tham khảo một kèo bóng đá hôm nay và ngày mai duy nhất, Có một số khả năng bổ sung liên quan đến cách NULL Giá trị được khớp. Những điều này được giải thích trong tài liệu tham khảo Tài liệu choPostgreSQL:.

5.3.6. Loại trừ Hạn chế

Các kèo bóng đá hôm nay và ngày mai loại trừ đảm bảo rằng nếu bất kỳ hai hàng nào so với các cột hoặc biểu thức được chỉ định bằng cách sử dụng Các toán tử được chỉ định, ít nhất một trong những so sánh toán tử này sẽ trả về sai hoặc null. Cú pháp là:

Tạo vòng tròn bảng (
    vòng tròn c,
    Loại trừ bằng cách sử dụng gist (c với &&)
);

30397_30408Tạo bảng ... kèo bóng đá hôm nay và ngày mai ... loại trừcho chi tiết.

Thêm kèo bóng đá hôm nay và ngày mai loại trừ sẽ tự động tạo một Chỉ mục của loại được chỉ định trong khai báo kèo bóng đá hôm nay và ngày mai.