如何在 MySQL 中的整型列中新增一個正整數約束?


你需要為此使用 unsigned,因為它不允許你輸入負數。

語法如下

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)

更新於: 2019 年 7 月 30 日

已觀看 1 千次

開啟您的職業生涯

透過完成本課程獲得認證

開始
廣告
© . All rights reserved.