Cin*_*Cin 59 mysql sql integer insert
正如我SET在MySQL中的表中的cust_fax一样:
cust_fax integer(10) NOT NULL,
Run Code Online (Sandbox Code Playgroud)
然后我插入这样的值:
INSERT INTO database values ('3172978990');
Run Code Online (Sandbox Code Playgroud)
但后来它说
'错误1264`超出列的值
我想知道错误在哪里?我的套装?或其他?
任何答案将不胜感激!
Roh*_*kar 19
您还可以将数据类型更改为bigInt,它将解决您的问题,除非需要,将整数保持为字符串并不是一个好习惯.:)
ALTER TABLE T_PERSON MODIFY mobile_no BIGINT;
Run Code Online (Sandbox Code Playgroud)
Sah*_*hah 12
您超过了int数据类型的长度.您可以使用UNSIGNED属性来支持该值.
SIGNED INT可以支持到2147483647,并且UNSIGNED INT允许加倍.在此之后,您仍然希望保存数据,而不是使用长度为10的CHAR或VARCHAR
确保您AUTO_INCREMENT没有超出范围。在这种情况下,为它设置一个新值:
ALTER TABLE table_name AUTO_INCREMENT=100 -- Change 100 to the desired number
Run Code Online (Sandbox Code Playgroud)
AUTO_INCREMENT可以包含一个大于数据类型允许的最大值的数字。如果您填满了一张后来清空的表但AUTO_INCREMENT保持不变,则可能会发生这种情况,但也可能有不同的原因。在这种情况下,新条目的 id 将超出范围。
如果这是您的问题的原因,您可以通过设置AUTO_INCREMENT为比最新行的 id 大 1来修复它。因此,如果您的最新行的 id 为 100,则:
ALTER TABLE table_name AUTO_INCREMENT=101
Run Code Online (Sandbox Code Playgroud)
如果您想检查AUTO_INCREMENT的当前值,请使用以下命令:
SELECT `AUTO_INCREMENT`
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'DatabaseName'
AND TABLE_NAME = 'TableName';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
231412 次 |
| 最近记录: |