3)每一个字段尽量设置不可为空,对于有些业务比方订单的出仓时间确实须要等到出仓扫描时才有值的能够同意为空;
供參考的解决方式:
所有字段都设置为not null,
int ,date,datetime,timestamp类型都能够default 0
orm层配置添加例如以下:
zeroDateTimeBehavior=convertToNull
这样代码层面无需不论什么修改。()
一来兼顾db层面的优化。数据量大并发时,这样的抠门是可取的。
二来兼顾tms业务.
时间紧迫。可针对大表。
ps:
set datetime = null 它会清到 0.,,是的,。,但不能 统一标准啊。
把全部 time 有关的改成not null default 0 .. 代码 把UPDATE seq_rule SET test_date=null 改成 UPDATE seq_rule SET test_date=0 能够
这种话。。就能够统一全部time类型
单是db层面的话
timestamp类型 + not null default 0 . + UPDATE seq_rule SET test_date=0
能够解决 ,java层面?
others:
set timestamp = null . timestamp会自己主动刷到当前时间, 无论你是否default 0.
set timestamp = 0 . timestamp才会刷到'0000-00-00 00:00:00', 无论你是否default 0.
也能够jdbc层面:
String url = "jdbc:mysql://10.149.51.80:3306/test?relaxAutoCommit=true&zeroDateTimeBehavior=convertToNull";