如何创建具有 json 数据类型列的表

Posted

技术标签:

【中文标题】如何创建具有 json 数据类型列的表【英文标题】:how to create a table with json data type column 【发布时间】:2018-11-04 03:45:43 【问题描述】:

phpMyAdmin - 版本 4.8.0.1(最新)。

我正在尝试创建一个包含json 列的表。

CREATE TABLE `book` (
  `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
  `title` varchar(200) NOT NULL,
  `tags` json DEFAULT NULL,  // line 4
  PRIMARY KEY (`id`)
) ENGINE=InnoDB;

结果 - error in your SQL syntax... on line 4

当我转到现有表的 Structure 选项卡并尝试更改列类型时 - 列表中没有这样的选项。

phpMyAdmin 好像不支持这种数据。

请问有什么解决办法?

【问题讨论】:

您使用的是什么版本的 mysql?此数据类型是在 5.7 中添加的。 phpMyAdmin 不是数据库,它只是一个 Web 界面。重要的是 MySQL 的版本,而不是 PMA 的版本。 PMA 从 4.6.0 开始支持 JSON 数据类型,但它可能会检查数据库版本并在数据库较旧时隐藏它。 @Barmar,在我看到的右侧信息侧边栏 - 5.0.12。但我想我无法升级 mysql。 哇,这是一个非常旧的 MySQL 版本。与您的数据库管理员交谈。 【参考方案1】:

是的,您可以从旧版本升级到新版本 - 这就是几个月前我在 localhost 上所做的。

对于我来说,MySQL Workbench 做得很顺利而且没有错误,请参考https://dev.mysql.com/doc/workbench/en/wb-migration-database-mysql.html

如果您在迁移过程中遇到任何问题,请在此处提问,我们可能会在整个过程中为您提供帮助。

【讨论】:

以上是关于如何创建具有 json 数据类型列的表的主要内容,如果未能解决你的问题,请参考以下文章

创建具有记录类型列的表

如何找到所有具有 CHAR 数据类型的列并在其中具有数值的表?

在 R 中使用 SQLsave 创建的表的列的数据类型是啥

Toad 问题:Oracle 类型作为显示所有记录的表中列的数据类型

Spring Boot休眠类型异常创建带有JSON字段的表

MySQL数据类型 - 字符串数据类型