为什么电话号码不存储在整数数据类型中?

Bac*_*ary 1 mysql

mysql> desc Student;
+---------+--------------+------+-----+---------+----------------+
| Field   | Type         | Null | Key | Default | Extra          |
+---------+--------------+------+-----+---------+----------------+
| Roll_no | int(11)      | NO   | PRI | NULL    | auto_increment |
| name    | varchar(200) | YES  |     | NULL    |                |
| address | varchar(200) | YES  |     | NULL    |                |
| phone   | int(100)     | YES  |     | NULL    |                |
| age     | int(11)      | YES  |     | NULL    |                |
+---------+--------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)

mysql> insert into Student values(1,'Ram','Delhi',90404444389,18);
Run Code Online (Sandbox Code Playgroud)

错误 1264 (22003):第 1 行“电话”列的值超出范围

为什么错误..手机尺寸 100 但为什么超出范围..

tot*_*ack 5

因为你的数字超出了 int 类型的范围。您可以尝试改用 bigint,或者将列存储为 varchar,这可能更合适,如此处所述

这个答案。int 总是用 4 个字节存储。我认为您误解了 (100) 的作用,它只是控制显示宽度。

有关数字类型的更多信息,请参阅文档


归档时间:

查看次数:

1351 次

最近记录:

6 年,6 月 前