2014-01-15 4 views
0

MySql documentation состояния:MySql TINYINT используя параметр максимальной ширины дисплея

М указывает максимальную ширину отображения для целочисленных типов.

у меня есть:

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

Ширина дисплея презентационный подсказка клиентам, что клиент командной строки, кажется, игнорируют, и волен сделать это.

Единственный раз, когда ширина дисплея используется сам MySQL, когда ZEROFILL указан на колонке - тогда int(4), содержащий значение 684 будет извлекаться, как 0684.

Более подробная информация содержится в in this topic, в частности this answer.

+0

Параметр 'ZEROFILL' не влияет на фактическое значение, сохраненное для целочисленного типа. Ширина экрана наиболее полезна с опциями 'ZEROFILL'. – spencer7593

+0

Исправлено «сохранено» на «извлечено», спасибо за комментарий. Этот ответ также получил ниндзя-downvoted btw, как ваш, кто-то в рулоне. –

-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) 
+0

Слайд без комментариев, без объяснений. Благодаря! – spencer7593

Смежные вопросы