mysql 如果没有传递值,则“gorm gen database to struct”中的JSON类型Map可能会在创建过程中导致错误

6tqwzwtp  于 2023-03-28  发布在  Mysql
关注(0)|答案(1)|浏览(125)

表格:

type SQL
CREATE TABLE `user_profile` (
  `uuid` varchar(50) NOT NULL UNIQUE COMMENT 'uuid',
  `user_id` int NOT NULL COMMENT 'user id',
  `nickname` varchar(20) NOT NULL DEFAULT '' COMMENT 'nickname',
  `age` tinyint NOT NULL DEFAULT 0 COMMENT 'age',
  `active` bool NOT NULL DEFAULT true COMMENT 'whether the user is active',
  `rank` float NOT NULL DEFAULT 0 COMMENT 'user rank',
  `other` json COMMENT 'other personal information',
  `card` json COMMENT 'introduction card',
  `state` enum('on', 'off') NOT NULL DEFAULT 'on' COMMENT 'blacklist: off - on',
  `is_del` tinyint NOT NULL DEFAULT 0 COMMENT 'whether the record is deleted',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'the time when the record is created',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'the time when the record is updated',
  PRIMARY KEY (`user_id`),
  UNIQUE KEY `uk_uuid` (`uuid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='user profile table';

错误:
错误3140(22032):无效的JSON文本:“文档为空。”位于列“user_profile. other”的值的位置0。
“我使用gorm gen database to struct命令将数据库Map到Golang结构体,但是官方文档并没有提供很好的解决问题的方法,因此,希望有人能提供解决方案。”

l3zydbqr

l3zydbqr1#

你需要为你的JSON字段添加一个默认值.它应该是'[]' .

相关问题