当我SET
像这样在 MySQL 中的表中进行 cust_fax 时:
cust_fax integer(10) NOT NULL,
然后我插入这样的值:
INSERT INTO database values ('3172978990');
但后来它说
列的“错误 1264”值不足
我想知道错误在哪里?我的一套?或其他?
任何答案将不胜感激!
您还可以将数据类型更改为 bigInt ,它将解决您的问题,除非需要,否则将整数保留为字符串不是一个好习惯。:)
ALTER TABLE T_PERSON MODIFY mobile_no BIGINT;
您超出了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
AUTO_INCREMENT
可以包含大于数据类型允许的最大值的数字。如果您填满了一张随后清空但AUTO_INCREMENT
保持不变的桌子,则可能会发生这种情况,但也可能有不同的原因。在这种情况下,新条目的 id 将超出范围。
如果这是您的问题的原因,您可以通过将其设置AUTO_INCREMENT
为比最新行的 id 大一来修复它。因此,如果您的最新行的 id 为 100,则:
ALTER TABLE table_name AUTO_INCREMENT=101
如果您想检查AUTO_INCREMENT
的当前值,请使用以下命令:
SELECT `AUTO_INCREMENT`
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'DatabaseName'
AND TABLE_NAME = 'TableName';
与:
ALTER TABLE `table` CHANGE `cust_fax` `cust_fax` VARCHAR(60) NULL DEFAULT NULL;