MySQL-এ ইন্টিজার কলামে নেগেটিভ মান বাধা দেওয়ার জন্য UNSIGNED অ্যাট্রিবিউট ব্যবহার করা হয়। এটি ০ থেকে ৪২৯৪৯৬৭২৯৫ পর্যন্ত মান অনুমতি দেয়।
সিনট্যাক্স
CREATE TABLE yourTableName ( yourColumnName INT UNSIGNED );
উদাহরণ
টেবিল তৈরি:
mysql> CREATE TABLE OnlyPositiveValue (
-> Marks INT UNSIGNED
-> );
স্ট্রিক্ট মোড অন (বাধা নিশ্চিত করতে):
mysql> SET @@SESSION.sql_mode = 'STRICT_TRANS_TABLES';
নেগেটিভ মান ইনসার্ট করলে এরর:
mysql> INSERT INTO OnlyPositiveValue VALUES(-10); ERROR 1264 (22003): Out of range value for column 'Marks' at row 1 mysql> INSERT INTO OnlyPositiveValue VALUES(-100); ERROR 1264 (22003): Out of range value for column 'Marks' at row 1
পজিটিভ মান ইনসার্ট (সফল):
mysql> INSERT INTO OnlyPositiveValue VALUES(0), (10), (100);
mysql> SELECT * FROM OnlyPositiveValue;
+-------+ | Marks | +-------+ | 0 | | 10 | | 100 | +-------+
নোট: STRICT_TRANS_TABLES মোড অন থাকলে নেগেটিভ মান ইনসার্ট করলে এরর ফেলে। এটি ছাড়া সাইলেন্টলি ০ বা অ autop-adjust হতে পারে। UNSIGNED ব্যবহার করলে নেগেটিভ মান যাবে না, কিন্তু চেক কনস্ট্রেইন্ট (MySQL 8.0.16+) দিয়ে আরও জটিল শর্ত (যেমন > 100) লাগানো যায়।