关于字段的null和empty_string
邦wlb 发布于45月前 1答/1114阅

我的原始需求是:

表中的一个varchar字段默认值是''空串,做新增操作时,该字段不填写,可以插入空串“”到数据库。


实现过程中遇到的问题:

1、表中 dict_ext 字段,默认值为''空串,如下:

dict_ext             varchar(255) not null default '' comment '扩展Json',

2、元数据管理--字段管理,dict_ext字段,是否必填设置“否”

3、做新增操作的时候,表单dict_ext字段不录入内容

4、观察后台,执行的SQL是

Sql: insert into `t_dict`(`dict_ext`, `dict_field`, `dict_name`, `dict_object`, `dict_order`, `dict_value`) values(?, ?, ?, ?, ?, ?)

错误提示为:

com.jfinal.plugin.activerecord.ActiveRecordException: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column 'dict_ext' cannot be null

Parameter   : dict_field=news_type  dict_order=0  dict_name=固定文章  dict_value=0  dict_ext=  dict_object=t_news  


我觉得这个问题的原因是:
null 和空串''的转换问题。





[沙发] 扫地僧
@邦wlb 默认值空串的话 给这个字段的默认值设置为空格  不填相当于就是输入的null
提交评论