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

如果不指定 unsigned,则 bigint 将被签名。如果指定无符号,则 bigint 将是无符号的。

让我们首先创建一个表 -

mysql> create table DemoTable
   (
   Number bigint, // 签
   Number2 bigint unsigned // 未签名
   );

使用插入命令在表中插入记录 -

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

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

mysql> select * from DemoTable;

这将产生以下输出 -

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

猜你喜欢