mysql不允许json数据类型

wgmfuz8q  于 2021-06-21  发布在  Mysql
关注(0)|答案(3)|浏览(780)

我正在尝试将json类型的列添加到我的一个表中。我在用xampp和phpmyadmin。服务器版本是10.1.31-mariadb。innodb版本为5.6.36-83.0
当我试图从phpmyadmin中的选择框中选择json类型时,我没有看到任何关于json的内容。此外,运行此查询会导致“语法错误”:

ALTER TABLE my_table
ADD `some_column` json;

我在手册和各种教程中都看到,mysql确实支持json类型。
是版本问题吗?老实说,我对mysql的整个版本控制情况非常困惑。我在维基百科上看到,最新的稳定版本是8.0.11,而我的版本似乎完全不同(我不知道哪个版本是相关的:“服务器”还是“innodb”版本),我会假设xampp使用的是最新的mysql版本,但也许我错了。
有人能解释一下这个问题吗?如果它实际上是一个版本,那么在仍然使用xampp的情况下是否可以升级?

eoxn13cs

eoxn13cs1#

是的,这是一个版本问题,看到了吗https://mariadb.com/kb/en/library/mariadb-vs-mysql-compatibility/
您使用的是mariadb 10.1,它基于mysql 5.6/5.7(因此是innodb版本)。但是json数据类型是在mysql 8.0中添加的。现在看来mariadb不支持json数据类型。

bfhwhh0e

bfhwhh0e2#

似乎只有mariadb版本10.2.7才提供此数据类型。您可以改用longtext,因为根据docs,json只是longtext的别名。
https://mariadb.com/kb/en/library/json-data-type/

p1iqtdky

p1iqtdky3#

json数据类型在版本5.7中添加,在版本8中得到改进。mariadb没有json数据类型

相关问题