Phiên bản không được hỗ trợ:7.2 / 7.1
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 một trang chohiện tạiPhiên bản hoặc một trong kèo bóng đá c1 phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

Chương 8. Kế kèo bóng đá c1

Hãy tạo hai bảng. Bảng thủ đô chứa trạng thái Thủ đô cũng là thành phố. Đương nhiên, bảng Thủ đô nên kế kèo bóng đá c1 từ các thành phố.

Tạo các thành phố bảng (
    tên văn bản,
    Dân số nổi,
    độ cao int - (tính bằng ft)
);

Tạo bảng xếp hạng (
    Nhà nước Char (2)
) Kế kèo bóng đá c1 (thành phố);

5916_5950kế kèo bóng đá c1Tất cả kèo bóng đá c1 thuộc tính (tên, dân số và độ cao) từ cha mẹ của nó, thành phố. Loại tên thuộc tính làText, bản địaPostgreSQLLoại cho độ dài thay đổi ASCII chuỗi. Loại dân số thuộc tính làfloat, bản địaPostgreSQL6349_6480PostgreSQL, một bảng có thể kế kèo bóng đá c1 từ 0 hoặc Nhiều bảng khác và một truy vấn có thể tham chiếu tất cả các hàng của một bảng hoặc tất cả các hàng của một bảng cộng với tất cả các hậu duệ của nó.

Lưu ý:Phân cấp kế kèo bóng đá c1 thực sự là một Đồ thị acyclic được định hướng.

Ví dụ: truy vấn sau tìm thấy tên của tất cả kèo bóng đá c1 thành phố, bao gồm cả thủ đô nhà nước, nằm ở độ cao Hơn 500ft:

Chọn tên, độ cao
    Từ kèo bóng đá c1 thành phố
    Nơi độ cao 500;

Trở lại:

+----------+----------+
| Tên | độ cao |
+----------+----------+
| Las Vegas | 2174 |
+----------+----------+
| Mariposa | 1953 |
+----------+----------+
| Madison | 845 |
+----------+----------+

Mặt khác, truy vấn sau đây tìm thấy tất cả kèo bóng đá c1 thành phố không phải là thủ đô nhà nước và nằm ở độ cao của 500ft trở lên:

Chọn tên, độ cao
    Chỉ từ kèo bóng đá c1 thành phố
    Trong đó độ cao 500;

+----------+----------+
| Tên | độ cao |
+----------+----------+
| Las Vegas | 2174 |
+----------+----------+
| Mariposa | 1953 |
+----------+----------+

ở đây"Chỉ"7892_8084Chọn, Cập nhậtXóa- Hỗ trợ này"Chỉ"ký hiệu.

Trong một số trường hợp, bạn có thể muốn biết kèo bóng đá c1 nào cụ thể Tuple có nguồn gốc từ. Có một cột hệ thống được gọi làTableoidtrong mỗi kèo bóng đá c1 có thể cho bạn biết kèo bóng đá c1 gốc:

Chọn C.Tableoid, C.Name, C.Altitude
    Từ kèo bóng đá c1 thành phố c
    Trong đó C.altitude 500;

Trở lại:

+----------+----------+----------+
| Tableoid | Tên | độ cao |
+----------+----------+----------+
| 37292 | Las Vegas | 2174 |
+----------+----------+----------+
| 37280 | Mariposa | 1953 |
+----------+----------+----------+
| 37280 | Madison | 845 |
+---------+----------+----------+

Nếu bạn tham gia với PG_Class, bạn có thể thấy kèo bóng đá c1 thực tế tên:

Chọn p.relname, c.name, C.altitude
    Từ kèo bóng đá c1 thành phố C, pg_class p
    Trong đó C.altitude 500 và c.tableoid = p.oid;

Trở lại:

+----------+----------+----------+
| Relname | Tên | độ cao |
+----------+----------+----------+
| Thủ đô | Las Vegas | 2174 |
+----------+----------+----------+
| Thành phố | Mariposa | 1953 |
+----------+----------+----------+
| Thành phố | Madison | 845 |
+---------+----------+----------+

Trong kèo bóng đá c1 phiên bản trước củaPostgreSQL, mặc định không phải là để có được Truy cập vào kèo bóng đá c1 trẻ. Điều này đã được tìm thấy là dễ bị lỗi và cũng vi phạm SQL99. Dưới cú pháp cũ, để có được các kèo bóng đá c1 phụ mà bạn phụ thuộc*đến Tên kèo bóng đá c1. Ví dụ

Chọn * từ kèo bóng đá c1 thành phố *;

Bạn vẫn có thể chỉ định rõ ràng các kèo bóng đá c1 con Tăng giá*, cũng như rõ ràng Chỉ định không quét kèo bóng đá c1 con bằng cách viết"Chỉ". Nhưng bắt đầu trong phiên bản 7.1, hành vi mặc định cho một tên kèo bóng đá c1 không được trang trí là quét kèo bóng đá c1 con cũng vậy, trong khi trước khi mặc định không được làm Vì thế. Để có được hành vi mặc định cũ, hãy đặt cấu hình lựa chọnSQL_InheritanceTẮT, ví dụ.,

Đặt SQL_Inheritance thành TẮT;

hoặc thêm một dòng trong của bạnPostgreSql.confTệp.

Giới hạn của tính năng kế kèo bóng đá c1 là các chỉ mục (chỉ bao gồm các ràng buộc duy nhất) và các ràng buộc chính của nước ngoài Áp dụng cho các bảng đơn, không phải cho trẻ em kèo bóng đá c1 kế của họ. Như vậy, Trong ví dụ trên, chỉ định rằng cột của một bảng khácTài liệu tham khảo thành phố (tên)sẽ cho phép kèo bóng đá c1 khác để chứa tên thành phố nhưng không phải tên vốn. Cái này Thiếu có thể sẽ được sửa trong một số bản phát hành trong tương lai.