Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

SQL tạo bảng phụ thuộc

Bạn không thể tạo ràng buộc để kiểm tra điều đó với cấu trúc bảng hiện có. Một cách phổ biến để làm điều đó là như sau:

create table loaner (
loan_id number(5) primary key,
loan_type VARCHAR2 (16),
loan_start_date date,
loan_end_date date,
constraint loaner_uk unique (loan_id, loan_type)
);

create table office_worker (
worker_id number(5) primary_key,
loan_id number(5),
loan_type VARCHAR2 (16),
worker_name varchar2(50),
constraint office_worker_loaner_fk foreeign key (loan_id, loan_type) references loaner (loan_id, loan_type),
constraint office_worker_loan_type_chk check (loan_type = 'OFFICE')
);

create table nonoffice_worker (
nonworker_id number(5) primary_key,
loan_id number(5),
loan_type VARCHAR2 (16),
nonworker_name varchar2(50),
constraint nonoffice_worker_loaner_fk foreeign key (loan_id, loan_type) references loaner (loan_id, loan_type),
constraint nonoffice_worker_loan_type_chk check (loan_type = 'NONOFFICE')
);

Đó là:

  1. Tạo ràng buộc UNIQUE dư thừa trong (load_id, loan_type) trong bảng đầu tiên.
  2. Thêm loan_type vào các bảng kiểu con và đặt khoá ngoại vào (loan_id, loan_type).
  3. Thêm ràng buộc kiểm tra vào mỗi bảng loại phụ để đảm bảo sử dụng đúng loan_type.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cơ sở dữ liệu lỗi của Oracle ở đâu?

  2. Yii2 lưu tệp vào Oracle BLOB

  3. Tự động trích xuất dữ liệu - Oracle SQL Developer

  4. Sự khác biệt giữa kết nối trình điều khiển OCI và THIN với kết nối nguồn dữ liệu giữa java và oracle XE là gì?

  5. Các lớp java được lưu trữ ở đâu trong Oracle?