Mysql json列约束错误(按json深度)

ni65a41a  于 2022-12-15  发布在  Mysql
关注(0)|答案(1)|浏览(113)

如果我在mysql中将数据类型设置为JSON,并在其中保存以下内容,保存就可以了。

{
"root": [{
    "parent_01": [{
        "parent_02": [{
            "parent_03": [{
                "parent_04": [{
                    "parent_05": [{
                        "parent_06": [{
                            "parent_07": [{
                                "parent_08": [{
                                    "parent_09": [{
                                        "parent_10": [{
                                            "parent_11": [{
                                                "parent_12": [{
                                                    "parent_13": [{
                                                        "parent_14": []
                                                    }]
                                                }]
                                            }]
                                        }]
                                    }]
                                }]
                            }]
                        }]
                    }]
                }]
            }]
        }]
    }]
}]

}
但是,如果我尝试再保存一个级别,我将收到错误消息CONSTRAINT projectpages.origin_html_structure failed for tailwindui . projectpages

{
"root": [{
    "parent_01": [{
        "parent_02": [{
            "parent_03": [{
                "parent_04": [{
                    "parent_05": [{
                        "parent_06": [{
                            "parent_07": [{
                                "parent_08": [{
                                    "parent_09": [{
                                        "parent_10": [{
                                            "parent_11": [{
                                                "parent_12": [{
                                                    "parent_13": [{
                                                        "parent_14": [{
                                                            "parent_15": []
                                                        }]
                                                    }]
                                                }]
                                            }]
                                        }]
                                    }]
                                }]
                            }]
                        }]
                    }]
                }]
            }]
        }]
    }]
}]

}
如果我在最后一次潜水中使用字符串,那么保存就很好,JSON_DEPTH在给定列返回32:

"parent_14": [{
    "parent_15": "String content"
}]

// returns 32
select JSON_DEPTH(origin_html_structure) from projectpages

但是,如果我将字符串更改为数组,我将再次收到上面的错误消息,并且保存将失败:

"parent_14": [{
    "parent_15": []
}]

为什么会这样呢?我唯一想到的是mysql对json列设置了深度限制,但是我在网上没有找到这个信息,无论如何,我需要更深层次的沉浸式存储结构,如果我用实际的LONG TEXT或者MEDIUM TEXT代替数据类型,我会正确的保存它,但在这种情况下,它不是一个原生的JSON。请提供建议和任何信息。谢谢。

相关问题