Unique Constraint قیدی است که مانع تکرار مقادیر در ستون یا ترکیب مشخصی از ستونها میشود.
برای شماره سفارش یا ترکیب شناسه کاربر و کد تخفیف میتوان قید یکتا تعریف کرد.
در عمل چه چیزی مهم است؟
رفتار NULL و Collation در موتورهای مختلف متفاوت است. اعتبارسنجی برنامه جای قید دیتابیس را نمیگیرد.
جلوگیری از رکورد تکراری با قید یکتا
ALTER TABLE users
ADD CONSTRAINT uq_users_email UNIQUE (email);
اعتبارسنجی ایمیل قبل از INSERT بهتنهایی مانع ثبت همزمان مقدار تکراری در دو درخواست نمیشود. قید یکتا باید در خود دیتابیس اعمال شود و خطای نقض آن در برنامه مدیریت شود.