Before delete trigger som skal lave update på samme tabel
Hej EksperterJeg har følgende tabel:
CREATE TABLE groups (
id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
parent_id INTEGER UNSIGNED NULL,
title VARCHAR(255) NOT NULL,
PRIMARY KEY(id),
FOREIGN KEY(parent_id)
REFERENCES groups(id)
ON DELETE NO ACTION
ON UPDATE CASCADE
)
TYPE=InnoDB;
Og trigger:
CREATE TRIGGER move_group_up BEFORE DELETE ON groups
FOR EACH ROW
BEGIN
UPDATE groups SET parent_id = OLD.parent_id WHERE parent_id = OLD.id;
END;
Tanken er at når en gruppe slettes, så flyttes grupperne som tilhører denne, op i samme niveau som den slettede.
Når jeg laver en delete får jeg fejlen:
Can't update table 'groups' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
Jeg forstår godt hvorfor problemet opstår, men synes nu stadig det burde kunne lade sig gøre uden der sker noget træls rekursivt, eller at der opstår en deadlock.
Nogle gode idéer?
//hermandsen