开发中遇到程序报错,错误信息:SQLSTATE[23000]: Integrity constraint violation: 1048 Column ‘xxx’ cannot be null,这是因为我们要更新的字段设置了not null约束。

解决办法是根据实际情况,取消字段的not null约束或者给字段设置默认值。

一般在开发中,推荐根据如下情况进行设置:

  • 如果字段为int 或者varchar等类型,那么要设置字段类型为not null 并且设置default
  • 如果字段为text,则取消not null 约束。

我这里的字段是text类型,因此我取消了not null 约束:

ALTER TABLE `purchase_status` CHANGE `remarks` `remarks` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL;