2012-12-20 26 views
2

是否可以防止在某個日期和時間之後插入到mysql表中?Mysql防止在某日期之後插入

,比如我有2個表:

TABLE exams 
(
... 
examID int primary key auto_increment, 
examDate DATE, 
examTime TIME, 
... 
) 


TABLE inscripts 
(
... 
examID int not null references exams(examID), 
insDate DATE, 
insTime TIME, 
... 
) 

我想,以防止新的銘文插本考試玩的時候。

如果當前日期和當前時間等於或大於匹配表中的日期和時間,有一些功能可以防止此問題或輕鬆檢查嗎?

回答

2

您可以在繼續之前驗證插入的create a trigger。僞代碼,但類似:

DELIMITER | 
CREATE TRIGGER `Stop_Insert_During_Exam` 
BEFORE UPDATE ON `inscripts` 
FOR EACH ROW 
BEGIN 
    DECLARE msg VARCHAR(255); 
    -- Check 
    -- Test if an exam is going on. If so: 
    SET msg = "You cannot add an inscription while an exam is going on.'; 
    SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = msg; 
    -- /Check 
END; 
| 
1

看着你的桌子,當你試圖插入題詞時,你已經知道了考試。因此,您可以在插入題詞並檢查它是否正在進行之前抓住考試。如果它只是不插入它,如果它不是,然後插入它。