在 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)


相关文章