به هر فیلدی که مقدار تکراری را قبول نکند، کلید یکتا گفته میشود. این کلید در مواردی مثل شماره شناسنامه یا کد ملی که هر فردی شمارهای مخصوص به خود دارد، کاربرد فراوان دارد. در یک جدول میتوان بیش از یک فیلد را، به عنوان کلید یکتا برگزید. این قاعده را با عبارت UNIQUE تعریف میکنند. در دستور زیر نحوهی استفاده از دستور UNIQUE را مشاهده میکنید.
مثال۱:
CREATE TABLE TEST
(ID NUMBER UNIQUE,
TELL NUMBER DEFAULT 22222,
ADDRESS VARCHAR2(10));
نکته: برای نمایش یک پبغام در هنگام وقوع خطا در هر یک از قواعد جامعیتی از دستور CONSTRAINT استفاده میشود. به این صورت که کلمه نوشتهشده بعد از آن، همان پیغامی است که میخواهیم چاپ شود و کلمه بعدی مشخصکننده خطایی است که باید چکشود.
CREATE TABLE TEST
(ID NUMBER CONSTRAINT UQ_TEST_ID UNIQUE,
TELL NUMBER DEFAULT 22222,
ADDRESS VARCHAR2(10));
مثال۲:
CREATE TABLE MYT
(ID NUMBER,
NAME VARCHAR2(20) UNIQUE);
نکته: از این به بعد داخل NAME داده تکراری نمیتوان درج کرد. توجه داشته باشید به حروغ بزرگ و کوچیک حساس است.
نکته: در مورد دیتای رکورد همه دیتابیسها به حروف کوچیک و بزرگ حساس هستند اما در مورد اسم جداول و دادههای درون DATA DICTONARY(ساختار جداول و ...) همه دیتابیسها حساس نیستند.
نکته: این قاعده نیز سک SELECT تو کار برای ارزیابی داده تکراری میزند و استفاده از آن بسته به نوع پروژه و اولویتها دارد. (باید دید کجا به نفع ماست در درون اپلیکیشن قاعدهها را اجرا کنیم و کجا در سطح دیتابیس)
INSERT INTO MYT VALUES(1, 'MAHDI');
1 row created.
INSERT INTO MYT VALUES(2, 'MAHDI');
*
ERROR at line 1:
ORA-00001: UNIQUE CONSTRAINT (MGHAFFARI.SYS_C0010918) violated
INSERT INTO MYT VALUES(2, 'mAHDI');
1 row created.