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



我遇到了一个奇数SQL错误。我有一个包含以下属性的表客户端:

  • clientid
  • 标题
  • 名称
  • lastname
  • 电子邮件
  • 手机
  • 平衡

点作为长度11的整数设置,并接受了无效的值

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

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

我发现很难理解错误的意义。好像积分不会变得如此之大,以至于需要成为一个巨大的东西。

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; 

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

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

我的第一个猜测是表格中的顺序不同 - 但不要弄清楚这一点,只需明确您使用的列。

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

相关内容

  • 没有找到相关文章

最新更新