MySQL 中插入一個負值到 UNSIGNED 列會發生什麼情況?


在 MySQL 中為 UNSIGNED 列設定負值時會發生錯誤。例如,我們首先建立一個帶有 UNSIGNED 欄位的表 −

mysql> create table UnsignedDemo
   -> (
   -> Id int UNSIGNED
   -> );
Query OK, 0 rows affected (0.79 sec)

每當將負值插入被宣告為 UNSIGNED 的 Id 列時,都會出現如下錯誤 −

mysql> INSERT INTO UnsignedDemo VALUES(-100);
ERROR 1264 (22003): Out of range value for column 'Id' at row 1

示例

但是,正值適用於 UNSIGNED。在下例中顯示了這一點。使用 insert 命令在上述表中插入一些記錄。查詢如下 −

mysql> INSERT INTO UnsignedDemo VALUES(100);
Query OK, 1 row affected (0.15 sec)
mysql> INSERT INTO UnsignedDemo VALUES(1000);
Query OK, 1 row affected (0.15 sec)
mysql> INSERT INTO UnsignedDemo VALUES(0);
Query OK, 1 row affected (0.11 sec)
mysql> INSERT INTO UnsignedDemo VALUES(100000000);
Query OK, 1 row affected (0.27 sec)

使用 select 語句顯示錶中的所有記錄。查詢如下 −

mysql> SELECT *FROM UnsignedDemo;

輸出

+-----------+
| Id        |
+-----------+
|       100 |
|      1000 |
|         0 |
| 100000000 |
+-----------+
4 rows in set (0.00 sec)

更新時間: 2020-03-06

595 次瀏覽

Kickstart Your 事業

透過完成課程獲得認證

開始
廣告
© . All rights reserved.