Mysql链接2列

时间:2018-02-06 18:52:05

标签: mysql sql hyperlink

我在数据库结构方面遇到了一些困难。 我有一个CMS和一个程序,都可以从我的表中更新/选择东西"用户"。 该程序是封闭源代码,因此我无法更改任何查询。 CMS也是某种类型的“锁定”,它包含某些类和函数,所有这些都在列冠上。

以下是我遇到问题的2列: user_data_currencycrowns,都适用于某种"信用"。 该程序使用user_data_currency,CMS使用冠。 所以问题是,如果有人获得一些积分,CMS将更新冠表,但我的程序正在跟踪user_data_currency。 我想"链接"那两个柱子。我希望克朗成为主要的专栏。

因此,如果我的程序选择了user_data_currency,我想显示crowns列的值。

抱歉我的英语不好,我住在荷兰。

1 个答案:

答案 0 :(得分:0)

1-对于将来的更新,我认为您可以在users表中添加触发器。跟踪CMS或程序是否更新了crownsuser_data_currency,然后让mysql为旧记录带来更新:

DELIMITER ;;

CREATE TRIGGER updateDualCrownsUDC BEFORE UPDATE ON users FOR EACH ROW
IF OLD.crowns <> NEW.user_data_currency THEN
  SET OLD.crowns = NEW.user_data_currency;
END IF;;
IF OLD.user_data_currency <> NEW.crowns THEN
  SET OLD.user_data_currency = NEW.crowns;
END IF;;

DELIMITER ;

2-对于旧记录,您需要通过将crowns作为主列

手动更新它们
UPDATE users SET crowns = user_data_currency WHERE crowns IS NULL;
UPDATE users SET user_data_currency = crowns WHERE user_data_currency <> crowns;

注意:首先备份数据以避免错误操作。