将默认MYSQL JSON值设置为“{}”或“NULL”是否更好?

时间:2018-03-15 01:19:27

标签: mysql mysql-json

我们开始使用MySQL json数据类型。将JSON数据类型的默认值存储为NULL{}时,是否有任何建议的最佳做法?每个人的PRO和CON是什么?

3 个答案:

答案 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

因此,如果要求向后兼容,则这是{}的缺点。