mysql - 更新触发器不适用于 json 数据类型

标签 mysql json triggers database-trigger

我创建了一个触发器,如下所示:

DELIMITER //

CREATE TRIGGER facility_availabilities_after_update
AFTER UPDATE ON facility_availabilities FOR EACH ROW
BEGIN
  INSERT INTO facility_availabilities_clone
  (id,facility_id,availability,`date`,created_at,updated_at)
  VALUES(NEW.id, NEW.facility_id, NEW.`date`, NEW.availability, NEW.created_at, NEW.updated_at);
END; //
DELIMITER ;

我的字段之一,即可用性是json数据类型并存储数据,如图所示:

enter image description here

当我尝试更新主表时,即facility_availities,我收到以下错误:

#3140 - 无效的 JSON 文本:“文档根目录后面不能跟其他值。”位于“facility_availability_clone.availability”列值的第 4 位。

最佳答案

对于 json 数据也有同样的错误,在这种情况下尝试使用 JSON_ARRAY 函数

VALUES(NEW.id, NEW.facility_id, NEW.日期, JSON_ARRAY(NEW.availability), NEW.created_at, NEW.updated_at);

关于mysql - 更新触发器不适用于 json 数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52497669/

相关文章:

android - 使用 volley 获取 json 对象和数组

javascript - 将本地 JSON 文件读入变量

php - 这个 MySQL 查询(使用 LEFT OUTER JOIN)有什么问题?

php - MySQL - 查询相乘记录返回 - 笛卡尔积

php - MySQL 数据库 I18N,一种 JSON 方法?

python - 如何在 python 中使用单个 MySQL 查询更新多行?

javascript - 从 JSON 模式生成 JavaScript 类

MySQL 触发器,模糊的语法错误

用于日志记录的 mysql 触发器,查找更改的列

postgresql - 将 postgreSQL 触发器应用于数据库中的现有行