কম্পিউটার টিউটোরিয়াল

MySQL-এ INT UNSIGNED ব্যবহার করে নেগেটিভ নাম্বার প্রতিরোধ করা

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 UNSIGNED0 - 255
SMALLINT UNSIGNED0 - 65,535
INT UNSIGNED0 - 4,294,967,295
BIGINT UNSIGNED0 - 18,446,744,073,709,551,615
  1. MySQL INSERT-এ ডুপ্লিকেট সারি প্রতিরোধ করা

  2. MySQL ROUND() 함수로 숫자 반올림하기

  3. MySQL-এ অ্যালফানিউমেরিক স্ট্রিং থেকে সংখ্যা বের করে সর্ট করা (RIGHT)

  4. সি ভাষায় নেগেটিভ নম্বারের মডুলাস (Modulus) আচরণ