0

我创建了一个包含一个字段的空表,并将一些数字数据导入其中。我选择了名为value1的字段作为 TEXT 字段。(我暂时这样做是因为我不知道数据的长度/范围或数据中是否可能有杂散的字母字符等)

现在,当清理东西时 PROCEDURE ANALYZE() 告诉我value1应该是一个CHAR(6)字段。该字段是数字,它没有字母字符,它的最小值为 1,最大值为 9999,最小值长度为 1,最大值长度为 6。所以经过一番调查,我看到有零填充值,即 000123。如果这是问题所在,我用一些 SQL 清理了它:

UPDATE table1 SET value1=TRIM(LEADING '0' FROM value1)

所以现在一切看起来都很好,正则表达式搜索不显示任何 alpha 字符等等。然而 PROCEDURE ANALYZE() 现在告诉我value1应该是一个 CHAR(5) 字段。没有空字段。字符集是拉丁文,所以我尝试了 ALTER TABLE table1 CONVERT TO CHARACTER SET utf8。没变。

有谁知道我在这里可能遗漏或不理解什么?为什么它不告诉我使用 SMALLINT 之类的?

Mysql 5.6,InnoDB 表,utf8。

4

0 回答 0