SQLSTATE[HY000]: General error: 1442 Error (used by statement which invoked this stored function/trigger)

sqlstate-hy000-general-error-1442-error-used-by-statement-which-invoked-this-stored-function-trigger (büyük resim için tıklayın)

Bu gönderide SQLSTATE[HY000]: General error: 1442 hatasından bahsediyorum.

MySQL; prosedür (stored procedure), tetikleyici (trigger) özelinde, ekleme öncesi ya da sonrası tablo üzerinde yapılacak değişikliğe izin vermez. Örneğin;

atamalar, sınavlar, kullanıcılar, sınav atamaları tabloları düşünülsün. Kullanım senaryosu olarak; kullanıcı, herhangi bir kullanıcıya sınav atamak istesin (X kullanıcı Y sınavını Z kullanıcısına atayacak). Daha önce bu sınav, bu kullanıcıya atanmış ise, tablodaki (sınav atamaları) uygunluk alanı güncellenmek istensin.

 

DELIMITER $$

CREATE TRIGGER 'trg_checkAssignmentExam' 

BEFORE INSERT

ON 'assignment_exam'

FOR EACH ROW

BEGIN

IF EXISTS (SELECT id FROM assignment_exam WHERE exam_id=NEW.exam_id

AND user_id=NEW.user_id)

THEN

UPDATE assignment_exam SET isAvailable=0 WHERE exam_id=NEW.exam_id

AND user_id=NEW.user_id;

END IF;

END$$

DELIMITER ;

omurserdarr

Ömürcan Serdar, 30 Ağustos 2018 Perşembe 15:30 tarihinde kayıt oldu

Beğeni

Toplam Beğeni Sayısı: 1