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

Tên Ràng buộc Mặc định trong Oracle là gì?

Vấn đề:

Bạn muốn biết tên mặc định của các ràng buộc trong bảng trong Oracle.

Ví dụ:

Trong cơ sở dữ liệu của chúng tôi, chúng tôi tạo hai bảng, countrystudent , với các ràng buộc sau:PRIMARY KEY (id cột trong bảng countrystudent ), FOREIGN KEY (cột country_id trong bảng student ), DEFAULT (cột name trong bảng student ), UNIQUE (cột name trong bảng country và cột personal_number trong bảng student ) và CHECK (cột age trong bảng student ).

Giải pháp:

CREATE TABLE country (
id int NOT NULL primary key,
name varchar(100) UNIQUE
);

CREATE TABLE student (
id int NOT NULL primary key,
name varchar(100) DEFAULT 'UNKNOWN',
personal_number varchar(100) UNIQUE,
age int CHECK(age>15),
country_id int,
FOREIGN KEY(country_id) references country(id)
);

Hãy hiển thị cách Oracle đặt tên cho các ràng buộc của các bảng này theo mặc định. Sử dụng truy vấn này để xem chúng:

select CONSTRAINT_NAME, CONSTRAINT_TYPE, TABLE_NAME
from USER_CONSTRAINTS
where TABLE_NAME='STUDENT' OR TABLE_NAME='COUNTRY';

Đây là kết quả:

CONSTRAINT_NAME CONSTRAINT_TYPE TABLE_NAME
SYS_C007376 R SINH VIÊN
SYS_C007366 P QUỐC GIA
SYS_C007374 P SINH VIÊN
SYS_C007367 Ư QUỐC GIA
SYS_C007375 Ư SINH VIÊN
SYS_C007372 C SINH VIÊN

Thảo luận:

Khi chúng tôi tạo bảng của mình, chúng tôi đặt các ràng buộc cho một số cột. Tuy nhiên, chúng tôi không chỉ định tên cho các ràng buộc này, vì vậy chúng được đặt tên theo mặc định. Tên mặc định cho các ràng buộc được tạo như thế nào?

Trong Oracle, tên ràng buộc mặc định bắt đầu bằng tên người dùng, theo sau là ‘_C 'Và một số thứ tự. Các loại ràng buộc là ‘C ’(check ), ‘P ’(Khóa chính),‘ U ’(Ràng buộc duy nhất) và‘ R ’(Khóa ngoại). Tất cả các tên ràng buộc mặc định được tạo dưới dạng ‘SYS ’,‘ _ ', Và số. Bạn có thể thấy các tên mặc định trong bảng trên. Ví dụ:CHECK ràng buộc tuổi cột trong student bảng có tên SYS_C007372 .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. nhận một số giá trị duy nhất mà không cần phân tách các giá trị thuộc cùng một khối giá trị

  2. Lỗi tắt máy Oracle ORA-01033

  3. Cập nhật nhiều giá trị cột trong bảng bằng cách sử dụng một truy vấn

  4. Cập nhật các hàng trong một bảng với dữ liệu từ một bảng khác dựa trên một cột trong mỗi bảng bằng nhau

  5. ORACLE - Chọn Đếm trên Truy vấn con