我们开始使用MySQL的json数据类型。在将默认值存储为NULL
或{}
用于JSON数据类型时,是否有任何推荐的最佳实践?它们各自的优点和缺点是什么?
我们开始使用MySQL的json数据类型。在将默认值存储为NULL
或{}
用于JSON数据类型时,是否有任何推荐的最佳实践?它们各自的优点和缺点是什么?
这取决于您的业务用例。
null
通常表示值未知/不存在。{}
表示该值已知/存在,并且已知值是一个空的JSON对象{}
。如果您尝试在旧版本上设置非空默认值,将会出现错误:在MySQL 8.0.13之前,JSON列不能有非NULL的默认值。
BLOB、TEXT、GEOMETRY或JSON列“column_name”不能有默认值
因此,如果需要向后兼容性,则这对空值 {}
是一个缺点。null
,如果您向现有行添加新的JSON列。NULL
不同。 NULL
表示数据库中未知/不存在,null
表示转换为JSON后未知/不存在。{}
是一个空的JSON对象。[42000][1101] BLOB、TEXT、GEOMETRY 或 JSON 列 'xxxx' 不能有默认值。