MySQL - Int强制所有值都相同

时间:2018-03-08 13:30:38

标签: mysql

我创建了一个付款数据库。

我的CardNo列的数据类型为INT。

-------------------------------------------------------------
 | Field      | Type        | Null | Key | Default | Extra | 
-------------------------------------------------------------
 | Payment_ID | int(11)     | NO   | PRI | null    |       | 
 | CardNo     | int(16)     | YES  |     | null    |       | 
 | ExpiryDate | varchar(45) | YES  |     | null    |       | 
 | Guest_ID   | int(11)     | YES  | MUL | null    |       | 
-------------------------------------------------------------

然而,这迫使我所有的int值都相同。

-----------------------------------------------------
 | Payment_ID | CardNo     | ExpiryDate | Guest_ID | 
-----------------------------------------------------
 | 1          | 2147483647 | 09/19      | 1        | 
 | 2          | 2147483647 | 04/18      | 2        | 
 | 3          | 2147483647 | 09/18      | 3        | 
 | 4          | 2147483647 | 01/20      | 4        | 
 | 5          | 2147483647 | 04/21      | 5        | 
-----------------------------------------------------

有没有人对此有解释?我在网上找不到一个? 当我将列更改为Varchar(16)时,我可以看到我输入的实际值。

-----------------------------------------------------------
 | Payment_ID | CardNo           | ExpiryDate | Guest_ID | 
-----------------------------------------------------------
 | 1          | 1234567891234567 | 09/19      | 1        | 

由于

1 个答案:

答案 0 :(得分:0)

INT列的最大值为2147483647

See Here

您有2个选项。将其更改为BIGINT或将其更改为CHAR(长度可能不会更改,因此只需要一个固定大小的列)。

我个人总是使用CHAR。