MySql documentation声明:
M表示整数类型的最大显示宽度。
我有:
CREATE TABLE `one` (x TINYINT(2));// set the display value to 2 digits
INSERT INTO `one` (x) VALUES (9);
SELECT * FROM `one`;
输出:
+------+
| x |
+------+
| 9 |
+------+
两位数显示宽度在哪里;我看到一个4位宽的视图,如:
+------+
| x |
+------+
| 0009 |
+------+
答案 0 :(得分:0)
显示宽度是客户端的表示提示,命令行客户端似乎忽略了这些提示,并且可以自由地执行此操作。
MySQL本身使用显示宽度的唯一时间是在列上指定ZEROFILL
时 - 包含值int(4)
的{{1}}将被检索为684
}。
还可以找到更多信息in this topic,特别是this answer会增加一些额外信息。
答案 1 :(得分:-1)
我建议您尝试在列上添加NOT NULL
约束。
请注意,列中NULL
的值将显示为NULL
,其中(不奇怪)需要4个显示字符。
INSERT INTO one VALUES (NULL);
SELECT * FROM one;
+------+
| x |
+------+
| 9 |
| NULL |
+------+
2 rows in set (0.00 sec)
CREATE TABLE two (x TINYINT(2) NOT NULL);
INSERT INTO two VALUES (9);
SELECT * FROM two;
+---+
| x |
+---+
| 9 |
+---+
1 row in set (0.00 sec)