如何理解 MySQL 中 bigint 是有符号的还是无符号的?

mysqlmysqli database更新于 2025/9/13 12:28:17

如果不指定无符号,则 bigint 是有符号的。如果指定无符号,则 bigint 是无符号的。

首先我们创建一个表 −

mysql> create table DemoTable
   (
   Number bigint, // signed
   Number2 bigint unsigned // unsigned
   );
Query OK, 0 rows affected (1.08 sec)

使用 insert 命令在表中插入记录 −

mysql> insert into DemoTable values(18446744073709551615,18446744073709551615);
ERROR 1264 (22003): Out of range value for column 'Number' at row 1
mysql> insert into DemoTable values(9223372036854775807,18446744073709551615);
Query OK, 1 row affected (0.28 sec)

使用 select 语句显示表中的所有记录 −

mysql> select * from DemoTable;

这将产生以下输出 −

+---------------------+----------------------+
| Number              | Number2              |
+---------------------+----------------------+
| 9223372036854775807 | 18446744073709551615 |
+---------------------+----------------------+
1 row in set (0.00 sec)

相关文章


有用资源