不合逻辑的SQL超出整数列的范围值

时间:2016-12-06 17:46:33

标签: mysql sql outofrangeexception

我得到一个奇怪的SQL错误。我有一个表客户端,其中包含以下属性:

  • ClientID
  • 标题
  • 名称
  • 名字
  • 电子邮件
  • 手机
  • 余额

点设置为长度为11的整数,接受NULL值

我尝试使用以下代码插入新客户端:

INSERT into client VALUES (154,"Mr","Ted","Jones","td@gmail.com","07951234567",0,0);

我收到以下错误:

  

1264 - 第1行“点”列的超出范围值

以防万一需要,第一行的数据是:

111 Mr  Rob Taylor  rt@hotmail.com  07523363535 438 0

我发现很难理解错误是什么。这并不是说积分会变得如此之大以至于它需要成为一个BigInt。

CREATE TABLE client ( 
    ClientID int(11) NOT NULL, 
    Title varchar(45) NOT NULL, 
    Name varchar(45) NOT NULL, 
    LastName varchar(45) NOT NULL, 
    Email varchar(45) NOT NULL,
    Cellphone bigint(11) DEFAULT NULL, 
    Points int(11) DEFAULT NULL, 
    Balance decimal(10,0) NOT NULL 
) 
ENGINE=InnoDB DEFAULT CHARSET=utf8; 

1 个答案:

答案 0 :(得分:3)

使用insert时始终指定列。大概你打算:

INSERT into client(ClientId, Title, Name, LastName, email, Cellphone, Points, Balance)
    VALUES (154, 'Mr', 'Ted', 'Jones', 'td@gmail.com', '07951234567', 0, 0);

我的第一个猜测是表格中的列的顺序不同 - 但不要费心去搞清楚,只要明确你正在使用的列。

另一种可能性是手机列被声明为某种数值。如果是这种情况,请修复数据并将列更改为varchar!