|
|
|
| Помогите мне написать триггер, там и писать то нечего, но у меня не получается
есть таблица
CREATE TABLE album_image(
image_id int UNSIGNED NOT NULL AUTO_INCREMENT,
album_id int UNSIGNED NOT NULL,
image_format varchar(5) NOT NULL,
posted boolean DEFAULT false,
PRIMARY KEY(image_id),
FOREIGN KEY (album_id) REFERENCES albums (album_id)
)TYPE = InnoDB DEFAULT CHARSET=utf8;
|
в ней image_id может иметь несколько одинаковых album_id, а posted может иметь только одно значение true. И при обновлении возникает проблема как же его так обновить что бы другие сбросить, а один обновился. Пишу триггер
DELIMITER $$
CREATE TRIGGER posted BEFORE UPDATE ON album_image
FOR EACH ROW
BEGIN
UPDATE album_image SET posted = 0 WHERE album_id = NEW.album_id;
END$$
DELIMITER ;
|
Смысл в том что сначала я все сбрасываю в ноль и потом нужный мне обновляется, но он нифига не хочет работать.
Выполняю такой запрос
UPDATE album_image SET posted = 1 WHERE album_id = 2;
|
И он мне сыпет ошибку. Как мне быть? Спасибо. | |
|
|
|
|
|
|
|
для: Filsh
(07.01.2011 в 20:36)
| | может лучше в таблицу albums закатать поле posted_image_id ?
и триггеров не понадобится :) | |
|
|
|
|
|
|
|
для: Trianon
(07.01.2011 в 20:40)
| | у меня там есть это поле, просто в некоторых местах мне так не удобно делать,
та и прийдется юзать две таблицы. Но в любом случае спасибо. | |
|
|
|