2
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或者DateOfCurrencyRate然后例如不能插入AUD | 2013-01-02或者USD | 2013-01-03

试图REPLACE检查,但相同的结果和假设REPLACE不适合这种情况。

现在看到一些解决方案为每个货币创建单独的表,但不是很好,因为有 ~ 40+ 个货币和INSERT`SELECT` 多个表浪费资源

请,建议解决方案。

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

4

1 回答 1

3

创建跨越这两列的唯一索引

CREATE 
    UNIQUE INDEX currency_date 
    ON yourTableName (CurrencyAbbreviation, DateOfCurrencyRate)  
于 2013-08-24T14:13:31.640 回答