當我嘗試選擇和更新同桌MySQL允許誤差MYSQL觸發從選擇和更新相同的表給出了錯誤#1241 - 操作數應包含1列(S)
error
#1241 - Operand should contain 1 column(s)
觸發器是
DELIMITER $$
CREATE TRIGGER visitor_validation
BEFORE INSERT ON ratingsvisitors
FOR EACH ROW
BEGIN
SET @ifexists = (SELECT * FROM ratingcounttracks WHERE userid=New.vistorid AND likedate=New.likevalidation AND countfor=New.likeordislike);
IF (@ifexists = NULL) THEN
INSERT INTO ratingcounttracks(userid, likedate, clickcount,countfor) values (New.vistorid, New.likevalidation ,'1',New.likeordislike);
ELSE
UPDATE ratingcounttracks SET clickcount=clickcount+1 WHERE userid=New.vistorid AND likedate=New.likevalidation AND countfor=New.likeordislike;
END IF;
END$$
你所試圖做的是叫做* UPSERT *。您可能想了解更多,因爲有不同的方法。在這個網站上有關於MySQL的upsert的問題。你可以從[這一個]開始(http://stackoverflow.com/questions/1218905/how-do-i-update-if-exists-insert-if-not-aka-upsert-or-merge-in-mysql 「如果存在,我如何更新?如果不是(在MySQL中插入或插入)?」),然後按照* Linked *部分中的說明進行更新。 –