Mysql INSERT IGNORE 如果两列中的特定行值已经存在

2024-04-29

CurrencyAbbreviation | CurrencyRate | DateOfCurrencyRate

  AUD                |  1.1         |   2013-01-01 
  USD                |  1.1         |   2013-01-01 
  EUR                |  1.1         |   2013-01-01 

想要防止插入具有相同日期的相同货币。

想要阻止这种情况

CurrencyAbbreviation | CurrencyRate | DateOfCurrencyRate

  AUD                |  1.1         |   2013-01-01 
  AUD                |  1.1         |   2013-01-01 

如果设置唯一CurrencyAbbreviation or DateOfCurrencyRate那么例如无法插入AUD | 2013-01-02 or USD | 2013-01-03

Tried REPLACE检查,但结果相同并且假设REPLACE对局势不利。

现在看到一些为每种货币创建单独表的解决方案,但效果不好,因为有大约 40 多种货币,并且INSERT`SELECT`` 多个表浪费资源

请建议解决方案。

思考,似乎需要创建包含货币和日期的附加列并将该列设置为唯一。目前看来这是我所知道的最好的解决方案


创建跨越这两列的 UNIQUE 索引

CREATE 
    UNIQUE INDEX currency_date 
    ON yourTableName (CurrencyAbbreviation, DateOfCurrencyRate)  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mysql INSERT IGNORE 如果两列中的特定行值已经存在 的相关文章

随机推荐