Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Thêm ràng buộc số nguyên dương (positive integer) cho cột INT trong MySQL

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.