我们开始使用MySQL json数据类型。将JSON数据类型的默认值存储为NULL
或{}
时,是否有任何建议的最佳做法?每个人的PRO和CON是什么?
答案 0 :(得分:3)
这取决于您的业务用例。
null
通常用于表示该值未知/不是
存在。 {}
表示该值已知/已知
存在且已知值是空JSON对象{}
答案 1 :(得分:0)
如果您向现有行添加新的JSON列,则默认情况下,PhpMyAdmin使用文本null
。
请注意,这与 NULL
不同。 NULL
表示数据库中未知/不存在,null
表示转换为JSON后未知/不存在。 {}
是一个空的JSON对象。
答案 2 :(得分:0)
请记住,根据{{3}},MySQL不允许版本8.0.13(于2018年10月22日发行)之前的JSON列使用非空默认值:
在MySQL 8.0.13之前,JSON列不能具有非NULL的默认值。
如果您在以前的版本上尝试使用,则会收到错误消息:
BLOB, TEXT, GEOMETRY or JSON column 'column_name' can't have a default value
因此,如果要求向后兼容,则这是{}
的缺点。