You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React中MySQL自增ID同步至data字段及删除逻辑问题

同步MySQL自增ID到JSON类型的data字段

一、批量更新现有数据

如果要把已存在的所有数据的自增id同步到data字段内的id属性,可以使用MySQL的JSON_SET函数执行批量更新:

UPDATE your_table_name
SET data = JSON_SET(data, '$.id', CAST(id AS CHAR)),
    edited_on = NOW()
WHERE data->>'$.id' != CAST(id AS CHAR);
  • JSON_SET(data, '$.id', CAST(id AS CHAR)):定位到dataJSON对象中的id属性,将其值替换为自增id的字符串形式(匹配原有数据的字符串类型)
  • edited_on = NOW():同步更新修改时间字段
  • WHERE子句:只更新data内id与自增id不一致的行,避免无意义的重复更新

二、新增数据时自动同步

为了避免后续新增数据出现id不一致的情况,可以创建触发器,在插入数据前自动将自增id写入data的id属性:

DELIMITER //
CREATE TRIGGER sync_id_to_data BEFORE INSERT ON your_table_name
FOR EACH ROW
BEGIN
    SET NEW.data = JSON_SET(NEW.data, '$.id', CAST(NEW.id AS CHAR));
END //
DELIMITER ;

触发器会在每次插入数据前执行,确保data内的id与数据库自增id完全一致。

三、关于React删除操作的验证建议

既然已确认删除操作现在使用数据库自增id而非data内的id,可以通过以下方式再次验证:

  • 查看前端删除请求的参数,确认传递的是数据库自增id(如示例中的5045)而非data内的21
  • 在后端删除逻辑中,强制以自增id作为删除条件,避免因参数错误误用其他id导致数据误删

内容的提问来源于stack exchange,提问作者Andre Bantquin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 14:17:44