我正在尝试将数据插入到ROR
的数据库中,因为电话号码我已经取整数字段..但它只取9个数字位。如果我尝试放10个数字。它提供错误如
Mysql2 ::错误:第1行“电话”列的超出范围值:
INSERT INTO contacts (
Email,
Message,
NAME,
SUBJECT,
Telephone,
created_at,
updated_at
)
VALUES
(
'ghfghf',
'daaswwd ffdd',
'ghfghf',
'fggfhg',
9234567899,
'2016-07-27 05:47:43',
'2016-07-27 05:47:43'
)
但如果我将数字设为1234567890
..它正在正确插入数据,但不能用于任何其他数字.. 9878675645
答案 0 :(得分:0)
除非您需要实际操作的电话号码,否则应将它们存储为字符串而不是整数。想象一下,您需要存储一个看起来像001234545677788
的国际号码。如果是整数,则不保留两个前导零。此外,如果您想使用标准表示法进行国际访问+1234566454545
,您将错过+
符号。
答案 1 :(得分:0)
问题是您使用整数的数据类型,整数的间隔来自:
-2147483648 TO 2147483647
并且不存储电话号码,因为数字使用VARCHAR,因为当你写一个以0开头的数字时,左边的零将会消失0099 ---> 99
答案 2 :(得分:0)
Mysql2 ::错误:列'电话'超出范围值在第1行:
将telephone
的列类型更改为字符串,因为整数不支持该长范围
def up
change_column :contacts, :telephone, :string
end
def down
change_column :contacts, :telephone, :integer
end