在 MySQL 中,当 INT 数据类型被明确声明为 UNSIGNED 和何时不是时有什么区别吗?

In MySQL is there any difference when INT data type is explicitly stated to be UNSIGNED and when it is not?

在 MySQL 中,我可以将 table 声明为 -

CREATE TABLE table1 ( column1 INT );

我也可以将 table 声明为 -

CREATE TABLE table2 ( column2 INT SIGNED );

所以这两个 table 之间有什么区别还是相同?

摘自 MySQL 关于 Numeric type syntax 的官方文档:

"允许 UNSIGNED 属性的数值数据类型也允许 SIGNED。但是,这些数据类型默认是有符号的,所以 SIGNED 属性没有作用。"

因此,上面示例中的两列都具有相同的数据类型 INT SIGNED。除非您将其中之一定义为 UNSIGNED,否则就会有所不同。