在 MySQL 中为整数列添加正整数约束?
mysqlmysqli database
您需要为此使用无符号数,因为它不允许您输入负数。
语法如下
CREATE TABLE yourTableName ( yourColumnName INT UNSIGNED );
为了理解这个概念,让我们创建一个表。创建表的查询如下
mysql> create table OnlyPositiveValue - > ( - > Marks int UNSIGNED - > ); Query OK, 0 rows affected (0.58 sec)
在表中插入数据之前,请使用以下查询。
查询如下
mysql> SET @@SESSION.sql_mode = 'STRICT_TRANS_TABLES'; Query OK, 0 rows affected, 1 warning (0.00 sec)
现在,如果您在 INSERT 命令中添加一个负数,则会出现以下错误
mysql> insert into OnlyPositiveValue values(-10); ERROR 1264 (22003): Out of range value for column 'Marks' at row 1 mysql> insert into OnlyPositiveValue values(-100); ERROR 1264 (22003): Out of range value for column 'Marks' at row 1
让我们插入正数。
查询如下
mysql> insert into OnlyPositiveValue values(0); Query OK, 1 row affected (0.17 sec) mysql> insert into OnlyPositiveValue values(10); Query OK, 1 row affected (0.14 sec) mysql> insert into OnlyPositiveValue values(100); Query OK, 1 row affected (0.11 sec)
使用 select 语句显示表中的所有记录。
查询结果如下
mysql> select *from OnlyPositiveValue;
以下是显示正数的输出
+-------+ | Marks | +-------+ | 0 | | 10 | | 100 | +-------+ 3 rows in set (0.00 sec)