带有null值的sql insert适用于localhost而不是live

时间:2016-11-18 11:06:33

标签: mysql null

INSERT INTO `package`(`cid`,`oid`,`toid`,`cat`,`allday`) values( '3' ,'' ,'5','6','Yes');

当我运行此查询时,它在我的localhost上工作正常,但在实时服务器上显示错误,因为没有为' oid'指定值,我的实时mysql版本是服务器版本:5.6.30-cll -lve - MySQL社区服务器(GPL)

这是我的oid字段的结构:  oid tinyint(4)NOT NULL,

Error i get on live - Field 'oid' is not a integer value

2 个答案:

答案 0 :(得分:1)

由于该列不能为null并且是一个tinyint,它将尝试将空值转换为整数。由于没有给出整数,它将给出你得到的错误。

有两个选项

  1. tinyint(4)not null 更改为 tinyint(4)并提供空值:

    INSERT INTO packagecidoidtoidcatallday)值('3',null,' 5' , '6', '是');

  2. 插入一个整数值

    INSERT INTO packagecidoidtoidcatallday)值('3','0' , '5', '6', '是');

答案 1 :(得分:0)

我不确定oid是否为tinyint(4) NOT NULL,并且您在oid中将空白值存储在查询中。请为oid列允许空值,然后尝试以下查询

INSERT INTO `package`(`cid`,`oid`,`toid`,`cat`,`allday`) values( '3' ,null ,'5','6','Yes');
                                                                      ^^