-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathUNIQUE.txt
176 lines (125 loc) · 8.85 KB
/
UNIQUE.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
****** UNIQUE - уникальные ограничения Oracle PL/SQL ******
Уникальное ограничение - это одно поле или комбинация полей, которые
однозначно определяют запись. Некоторые из полей могут содержать нулевые
значения, если комбинация значений уникальна.
!!! ВНИМАНИЕ !!!
В Oracle уникальное ограничение не может содержать более 32 столбцов.
Уникальное ограничение может быть определено либо в операторе CREATE TABLE,
либо в операторе ALTER TABLE.
!!! ВНИМАНИЕ !!!
!!! Разницу между уникальным ограничением и первичным ключом !!!
Первичный ключ - поля, которые являются частью первичного ключа, не могут
содержать нулевое значение.
Уникальное ограничение - поля, которые являются частью уникального ограничения,
могут содержать нулевые значения, если комбинация значений уникальна.
!!! Разницу между уникальным ограничением и первичным ключом !!!
Oracle не позволяет создавать как первичный ключ, так и уникальное ограничение
с одинаковыми столбцами.
****** Создание уникального ограничения с использованием оператора CREATE TABLE. *******
Синтаксис:
***************************************************************************************
CREATE TABLE table_name
(
column1 datatype [ NULL | NOT NULL ],
column2 datatype [ NULL | NOT NULL ],
...
CONSTRAINT constraint_name UNIQUE (uc_col1, uc_col2, ... uc_col_n)
);
***************************************************************************************
Параметры:
- table_name - имя таблицы, которую вы хотите создать.
- column1, column2 - столбцы, которые вы хотите создать в таблице.
- constraint_name - имя уникального ограничения.
- uc_col1, uc_col2, ... uc_col_n - столбцы, которые составляют уникальное ограничение.
Пример:
***************************************************************************************
CREATE TABLE supplier
( supplier_id numeric(10) NOT NULL,
supplier_name varchar2(50) NOT NULL,
contact_name varchar2(50),
CONSTRAINT supplier_unique UNIQUE (supplier_id)
);
***************************************************************************************
В этом примере мы создали уникальное ограничение supplier_unique для таблицы supplier.
Оно состоит только из одного поля - поля supplier_id.
Мы также могли бы создать уникальное ограничение с несколькими полями.
Пример:
***************************************************************************************
CREATE TABLE supplier
( supplier_id numeric(10) NOT NULL,
supplier_name varchar2(50) NOT NULL,
contact_name varchar2(50),
CONSTRAINT supplier_unique UNIQUE (supplier_id, supplier_name)
);
***************************************************************************************
****** Создание уникального ограничения с использованием оператора ALTER TABLE *******
Синтаксис создания уникального ограничения с использованием оператора ALTER TABLE:
***************************************************************************************
ALTER TABLE table_name
ADD CONSTRAINT constraint_name UNIQUE (column1, column2, ... column_n);
***************************************************************************************
Параметры:
- table_name - имя таблицы для изменения. Это таблица, к которой мы хотим добавить
уникальное ограничение.
- constraint_name - имя уникального ограничения.
- column1, column2, ... column_n - столбцы, которые составляют уникальное ограничение.
Пример:
***************************************************************************************
ALTER TABLE supplier
ADD CONSTRAINT supplier_unique UNIQUE (supplier_id);
***************************************************************************************
В этом примере мы создали (добавили) уникальное ограничение для существующей таблицы
supplier, называемое supplier_unique. Оно состоит из поля, с именем supplier_id.
Можно создать уникальное ограничение с несколькими полями:
***************************************************************************************
ALTER TABLE supplier
ADD CONSTRAINT supplier_name_unique UNIQUE (supplier_id, supplier_name);
***************************************************************************************
****** Удаление уникального ограничения ******
Синтаксис для удаления уникального ограничения в Oracle:
***************************************************************************************
ALTER TABLE table_name
DROP CONSTRAINT constraint_name;
***************************************************************************************
Параметры:
- table_name - имя таблицы для изменения. Это таблица, из которой вы хотите удалить
уникальное ограничение.
- constraint_name - имя уникального ограничения для удаления.
Пример:
***************************************************************************************
ALTER TABLE supplier
DROP CONSTRAINT supplier_unique;
***************************************************************************************
В этом примере мы удалили уникальное ограничение supplier_unique для таблицы supplier.
***** Отключение (запрет) уникального ограничения *******
Синтаксис отключения уникального ограничения в Oracle:
***************************************************************************************
ALTER TABLE table_name
DISABLE CONSTRAINT constraint_name;
***************************************************************************************
Параметры:
- table_name - имя таблицы для изменения. Это таблица, уникальное ограничение которой,
мы хотитм отключить (запретить).
- constraint_name - имя уникального ограничения для отключения.
Пример:
***************************************************************************************
ALTER TABLE supplier
DISABLE CONSTRAINT supplier_unique;
***************************************************************************************
В этом примере мы отключили уникальное ограничение supplier_unique для таблицы supplier.
****** Включение (разрешение) уникального ограничения *******
Синтаксис для включения уникального ограничения в Oracle:
***************************************************************************************
ALTER TABLE table_name
ENABLE CONSTRAINT constraint_name;
***************************************************************************************
Параметры:
- table_name - имя таблицы для изменения. Это таблица, уникальное ограничение которой,
мы хотим включить.
- constraint_name - имя уникального ограничения для включения.
Пример:
***************************************************************************************
ALTER TABLE supplier
ENABLE CONSTRAINT supplier_unique;
***************************************************************************************
В этом примере мы включаем уникальное ограничение supplier_unique для таблицы supplier.