MySQL-এ BIGINT` ডিফল্টভাবে সাইনড (signed) হয়, অর্থাৎ নেগেটিভ ও পজিটিভ দুটোই ধারণ করতে পারে। UNSIGNED কীওয়ার্ড দিলে শুধু পজিটিভ মান ধারণ করে (রেঞ্জ দ্বিগুণ হয়)।
টেবিল তৈরি (দুই ধরণের BIGINT)
mysql> CREATE TABLE DemoTable (
Number BIGINT, -- Signed (ডিফল্ট)
Number2 BIGINT UNSIGNED -- Unsigned
);
টেস্ট ডেটা ইনসার্ট
mysql> INSERT INTO DemoTable VALUES (18446744073709551615, 18446744073709551615); ERROR 1264 (22003): Out of range value for column 'Number' at row 1
Number (সাইনড) এর সর্বোচ্চ মান 9223372036854775807, তাই এরর দিয়েছে।
mysql> INSERT INTO DemoTable VALUES (9223372036854775807, 18446744073709551615); Query OK, 1 row affected (0.28 sec)
ফলাফল
+---------------------+----------------------+ | Number | Number2 | +---------------------+----------------------+ | 9223372036854775807 | 18446744073709551615 | +---------------------+----------------------+
রেঞ্জ:
BIGINT SIGNED: -9223372036854775808 থেকে 9223372036854775807BIGINT UNSIGNED: 0 থেকে 18446744073709551615
চেক করার উপায়: DESCRIBE table_name; বা SHOW CREATE TABLE table_name; দিয়ে কলাম ডেফিনিশনে UNSIGNED আছে কিনা দেখুন।