PDA

View Full Version : check constraint



mehdi58
سه شنبه 30 فروردین 1390, 09:51 صبح
سلام
من مي خواهم از طريق Check Constraint محدوديتي براي يكي از ستونهايم در نظر بگيرم كه هنگام درج مقادير مثلا حتما عبارات دو كاراكتري و نه كمتر و نه بيشتر درج شود.

CREATE TABLE myTbl(f1 char(2) check(f1 like('__')))

اما با اين روش نمي شود.

مورد بعدي براي ايجاد يك محدوديت حساس به حروف بزرگ است.

CREATE TABLE myTbl(f1 char(2) check(f1 like('[A-D]')))

اما با اين روش حروف كوچك هم قابل قبول است. آيا مي بايست Collation حساس به حروف كوچك و بزرگ در سطح Column تعريف شود يا اينكه اسكريپت فوق غلط است؟

محمد سلیم آبادی
سه شنبه 30 فروردین 1390, 17:55 عصر
جواب سوال اول:
دو کار می تونید انجام بدین: 1. استفاده از تابع LEN
2. تغییر CHAR به VARCHAR

یعنی:

CREATE TABLE myTbl (f1 CHAR(2), CHECK(LEN(f1) = 2));
CREATE TABLE myTbl (f1 VARCHAR(2), CHECK(f1 LIKE '__'));

و برای حساسی به حروف بزرگ و کوچیک باید Collation مناسب انتخاب کنید.