Unique Constraint قیدی است که مانع تکرار مقادیر در ستون یا ترکیب مشخصی از ستون‌ها می‌شود.

برای شماره سفارش یا ترکیب شناسه کاربر و کد تخفیف می‌توان قید یکتا تعریف کرد.

در عمل چه چیزی مهم است؟

رفتار NULL و Collation در موتورهای مختلف متفاوت است. اعتبارسنجی برنامه جای قید دیتابیس را نمی‌گیرد.

جلوگیری از رکورد تکراری با قید یکتا

ALTER TABLE users
ADD CONSTRAINT uq_users_email UNIQUE (email);

اعتبارسنجی ایمیل قبل از INSERT به‌تنهایی مانع ثبت هم‌زمان مقدار تکراری در دو درخواست نمی‌شود. قید یکتا باید در خود دیتابیس اعمال شود و خطای نقض آن در برنامه مدیریت شود.