2013-08-24 17 views
2
CurrencyAbbreviation | CurrencyRate | DateOfCurrencyRate 

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

要防止與同一日期插入相同的貨幣。Mysql的INSERT忽略如果在兩列特定行的值已存在

要防止這種

CurrencyAbbreviation | CurrencyRate | DateOfCurrencyRate 

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

如果設置獨特要麼CurrencyAbbreviationDateOfCurrencyRate再比如,他無法將兩種AUD | 2013-01-02USD | 2013-01-03

試圖REPLACE檢查,但同樣結果並假設REPLACE不適合這種情況。

現在看到一些解決方案來創建單獨的表每種貨幣,但不是很好,因爲有超過40〜貨幣和INSERT`SELECT``多個表的資源

請諮詢解決方案的浪費。

想想,似乎需要創建包含貨幣和日期的其他列,並將列設置爲唯一。目前看來,這是最好的解決辦法,我知道

回答

3

創建唯一索引跨越這兩列

CREATE 
    UNIQUE INDEX currency_date 
    ON yourTableName (CurrencyAbbreviation, DateOfCurrencyRate)