Dùng thuộc tính UNSIGNED cho cột INT để chỉ cho phép giá trị không âm (0 và số dương).
Cú pháp:
CREATE TABLE yourTableName (yourColumnName INT UNSIGNED);
Tạo bảng:
mysql> CREATE TABLE OnlyPositiveValue (Marks INT UNSIGNED);
Bật chế độ nghiêm ngặt để báo lỗi khi chèn số âm:
mysql> SET @@SESSION.sql_mode = 'STRICT_TRANS_TABLES';
Thử chèn số âm (sẽ báo lỗi):
mysql> INSERT INTO OnlyPositiveValue VALUES(-10); ERROR 1264 (22003): Out of range value for column 'Marks' at row 1
Chèn số dương (thành công):
mysql> INSERT INTO OnlyPositiveValue VALUES(0), (10), (100);
Kết quả:
+-------+ | Marks | +-------+ | 0 | | 10 | | 100 | +-------+
Lưu ý: INT UNSIGNED cho phép giá trị từ 0 đến 4,294,967,295. Cần bật STRICT_TRANS_TABLES để MySQL báo lỗi thay vì cắt bỏ giá trị âm.