Oracle
 sql >> база данни >  >> RDS >> Oracle

Какво е името на ограничението по подразбиране в Oracle?

Проблем:

Искате да знаете имената по подразбиране на ограниченията в таблица в Oracle.

Пример:

В нашата база данни създаваме две таблици, country и student , със следните ограничения:PRIMARY KEY (идентификаторът на колоната в таблиците country и student ), FOREIGN KEY (колоната country_id в таблицата student ), DEFAULT (колоната name в таблицата student ), UNIQUE (колоната name в таблицата country и колоната personal_number в таблицата student ) и CHECK (колоната age в таблицата student ).

Решение:

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)
);

Нека покажем как Oracle наименува ограниченията на тези таблици по подразбиране. Използвайте тази заявка, за да ги видите:

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

Ето резултата:

CONSTRAINT_NAME CONSTRAINT_TYPE TABLE_NAME
SYS_C007376 R СТУДЕНТ
SYS_C007366 P СТРАНА
SYS_C007374 P СТУДЕНТ
SYS_C007367 U СТРАНА
SYS_C007375 U СТУДЕНТ
SYS_C007372 C СТУДЕНТ

Дискусия:

Когато създаваме нашите таблици, ние задаваме ограничения за някои колони. Въпреки това, ние не уточняваме имената за тези ограничения, така че те са наименувани по подразбиране. Как се генерират имената по подразбиране за ограничения?

В Oracle името на ограничението по подразбиране започва с потребителското име, последвано от „_C “ и пореден номер. Типовете ограничения са „C ’ (check ), „P “ (първичен ключ), „U ’ (уникално ограничение) и „R “ (външен ключ). Всички имена на ограничения по подразбиране се генерират като „SYS “, „_ “ и числото. Можете да видите имената по подразбиране в таблицата по-горе. Например CHECK ограничение за възрастта на колоната в student таблицата има името 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. Списък на езиците, поддържани от Oracle Database

  2. Как работи GROUP BY?

  3. Адаптивната динамична статистика убива производителността в 12.1.0.2 RAC

  4. Oracle получава външни ключове

  5. Не се появява начална страница на Oracle 10g express