MySQL-এ কোনো কলামে নেগেটিভ মান যেন না আসে, তার জন্য কলামকে UNSIGNED ডিক্লেয়ার করুন।
পদ্ধতি: ALTER TABLE MODIFY
CREATE TABLE preventNegativeNumberDemo (
UserId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
UserName VARCHAR(20),
UserGameScores INT
);
-- কলাম MODIFY করে UNSIGNED করুন
ALTER TABLE preventNegativeNumberDemo
MODIFY COLUMN UserGameScores INT UNSIGNED NOT NULL;
যাচাই (DESC)
DESC preventNegativeNumberDemo;
+----------------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------------+------------------+------+-----+---------+----------------+ | UserId | int(11) | NO | PRI | NULL | auto_increment | | UserName | varchar(20) | YES | | NULL | | | UserGameScores | int(10) unsigned | NO | | NULL | | +----------------+------------------+------+-----+---------+----------------+
নেগেটিভ ইনসার্ট (এরর)
INSERT INTO preventNegativeNumberDemo (UserName, UserGameScores) VALUES
('Larry', 0), ('Mike', -1), ('Sam', -100), ('John', 100), ('Bob', 200);
ERROR 1264 (22003): Out of range value for column 'UserGameScores' at row 1
ফলাফল (শুধু পজিটিভ)
+--------+----------+----------------+ | UserId | UserName | UserGameScores | +--------+----------+----------------+ | 1 | Larry | 0 | | 2 | John | 100 | | 3 | Bob | 200 | +--------+----------+----------------+
UNSIGNED রেঞ্জ
| টাইপ | রেঞ্জ |
|---|---|
| TINYINT UNSIGNED | 0 - 255 |
| SMALLINT UNSIGNED | 0 - 65,535 |
| INT UNSIGNED | 0 - 4,294,967,295 |
| BIGINT UNSIGNED | 0 - 18,446,744,073,709,551,615 |