mysql insert 空数据默认值问题

CREATE TABLE
    task
    (
        id bigint unsigned NOT NULL AUTO_INCREMENT,
        taskType INT(10) unsigned DEFAULT '0' NOT NULL,
        retryCount INT DEFAULT '3' NOT NULL,
        status INT(10) unsigned DEFAULT '0' NOT NULL COMMENT '0:初始化 1:处理完成',
        taskData VARCHAR(2048) DEFAULT '0',
        treeId bigint NOT NULL,
        operateType INT(10) NOT NULL COMMENT '0:上线 1:下线',
        creator VARCHAR(20) NOT NULL,
        createTime DATETIME NOT NULL,
        updateTime DATETIME NOT NULL,
        PRIMARY KEY (id)
    )
    ENGINE=InnoDB DEFAULT CHARSET=utf8
insert into task ( taskType, retryCount,  taskData, treeId, operateType, creator, createTime, updateTime) values ( 0, 0,  null, 26, 0, 'xp', '2018-03-25 15:31:54', '2018-03-28 19:50:30');

insert into task ( taskType, retryCount, status, taskData, treeId, operateType, creator, createTime, updateTime) values ( 0, 0, null, null, 26, 0, 'xp', '2018-03-25 15:31:54', '2018-03-28 19:50:30');

观察下上面的两条sql,第一条执行没有问题,第二调则不能通过,在我们研发系统中,更多场景下insert 生成的sql是第二种,这也是造成了,我创建数据库的时候明明设置了默认值了,但是insert 的时候还是会失败,原因就是我们给这个字段放了个null,默认值在插入语句中没有此字段的时候会默认的把预定值保存上

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值