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

如果两列中的特定行值已存在,则Mysql INSERT IGNORE,mysql,insert,Mysql,Insert,要防止插入日期相同的货币 想防止这种情况吗 如果设置了唯一的currency缩写或DateOfCurrencyRate,则例如无法插入AUD | 2013-01-02或USD | 2013-01-03 尝试了REPLACE检查,但相同的结果和假设REPLACE不适合这种情况 现在看看为每种货币创建单独表的一些解决方案,但不太好,因为大约有40多种货币和INSERT`SELECT``多个表浪费资源 请给出解决方案的建议 因此,似乎需要创建包含货币和日期的附加列,并将该列设置为唯一列。目前看来,这

要防止插入日期相同的货币

想防止这种情况吗


如果设置了唯一的
currency缩写
DateOfCurrencyRate
,则例如无法插入
AUD | 2013-01-02
USD | 2013-01-03

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

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

请给出解决方案的建议


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

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 
CREATE 
    UNIQUE INDEX currency_date 
    ON yourTableName (CurrencyAbbreviation, DateOfCurrencyRate)