說我有以下字段彌補我的表中的唯一關鍵:(產品ID VARCHAR(30),dateset日期,dateend日期)觸發器:獲取有關將要更新的行信息
我打算讓dateend爲空,直到用一個較新的dateset相同的productid另一行已經插入,就像這樣:
+----------+-------------+-------------+
|productid | dateset | dateend |
+----------+-------------+-------------+
|'PRODUCTA'|'2014-10-09' | NULL |
+----------+-------------+-------------+
|'PRODUCTA'|'2009-08-06' |'2014-10-09' |
+----------+-------------+-------------+
現在,我在想,我怎麼會放心地做到這一點,我想我」 d在插入新行之前運行觸發器。它本質上會找到當前max(dateset),其中productid = @productid,如果它存在,它將使用@ newdateset(我們新插入的後續行的日期)更新此行的日期。問題是,我不知道如何獲得變量@productid或@newdateset。有什麼方法可以獲得即將插入的行的信息嗎?如果我寫道:
insert into products (productid, dateset) values ('DEMOA', '2014-10-10')
如何讓我的觸發器說@productid ='DEMOA',@newdateset ='2014-10-10'?
感謝,
Zakiir
一個觸發的最重要的方面是要能夠識別值。否則,你如何構建使用這些值的正確邏輯?所以,它在[MySQL關於觸發器的文檔]的第一段中有解釋(http://dev.mysql.com/doc/refman/5.6/en/trigger-syntax.html)。開發人員最重要的方面之一是能夠查找,解釋和使用有關所用工具的資源。所以,我低估了這個問題,因爲你似乎沒有努力去找到那些文檔。 – GolezTrol 2014-10-10 16:09:05
你說得對,我沒有仔細查看文檔。它在那裏顯而易見,我錯過了它。 NEW.col_name – zedjay72 2014-10-10 16:24:09
@ zedjay72如果您發現問題的答案,那麼如果您在下面簡明回答您自己的問題,它可以幫助其他Google的人。如果可以,請提供演示觸發器的代碼。 – 2014-10-10 17:26:19