2014-01-27 170 views
0

我必須在Mysql表上只做一個插入/每天。Mysql觸發器插入最後日期

DELIMITER $$ 

CREATE TRIGGER trig 
BEFORE INSERT ON Table 
FOR EACH ROW BEGIN 
/** compare the date with the latest inserted **/ 
    IF() THEN 
    // if it's ok => insert 
    ELSE 
    // nothing 
    END IF; 
END$$ 

DELIMITER ; 

我要比較的最後插入日期和當前日期,然後開始我的觸發做的工作。 感謝

+0

歡迎StackOverflow上:如果您發佈的代碼,XML或數據樣本,** **請在高亮文本編輯器的線,然後單擊「代碼示例」按鈕(' {}')在編輯器工具欄上進行恰當的格式化和語法突出顯示!那麼你不需要任何那些雜亂的'
'標籤! –

+0

你需要插入第一條記錄還是最後一天? – Devart

回答

0

您可以通過創建日期列上一個UNIQUE約束,然後使用INSERT IGNORE語法實現這一點沒有觸發(這是一件好事吧?)。

假設你有以下架構表

CREATE TABLE table1 
(
    date DATE, 
    value INT 
); 

讓我們創建一個唯一約束

CREATE UNIQUE INDEX idx_date_unique ON table1 (date); 

現在你可以使用IGNORE條款

INSERT IGNORE INTO table1 VALUES (CURDATE(), 1); 
INSERT IGNORE INTO table1 VALUES (CURDATE(), 2); 
INSERT IGNORE INTO table1 VALUES (CURDATE(), 3); 

因此,你」每天只有表中的第一行。

這裏是SQLFiddle演示