TRIGGER (SQL) - Visavi.net https://visavi.net/ RSS - Visavi.net https://visavi.net/assets/img/images/logo_small.png RSS - Visavi.net https://visavi.net/ [email protected] (admin) [email protected] (admin) Sat, 21 Sep 2024 10:51:03 +0300 Вопрос решен. Тему можно крыть. <br> Просто надо было убрать круглые скобки вокруг конструкции delete https://visavi.net/topics/37591/632325 TRIGGER (SQL) Момору Sat, 20 Apr 2013 20:59:14 +0400 Сообщения https://visavi.net/topics/37591/632325 4. <strong>78884115</strong>, <a href="http://upwap.ru/3087672" target="_blank" rel="nofollow">СКРИН ОШИБКИ</a><br> <br> <em><span style="font-size:x-small">Добавлено через 03:05 сек.</span></em><br> <pre class="prettyprint"> DELIMITER $$ CREATE OR REPLACE TRIGGER `tg_foto_dir` AFTER DELETE ON `ac_foto_dir` ALTER EACH ROW BEGIN IF(SELECT COUNT(*) FROM `ac_foto_file` WHERE `id_dir` = OLD.id LIMIT 1) = 1 THEN (DELETE FROM `ac_foto_file` WHERE `id_file` = OLD.id) END IF; END $$ DELIMITER; </pre> Триггер №2 (Они взаимосвязаны, посему - неразлучны ))<br> <pre class="prettyprint"> DELIMITER $$ CREATE OR REPLACE TRIGGER `tg_foto_alb` AFTER DELETE ON `ac_foto_album` ALTER EACH ROW BEGIN IF(SELECT COUNT(*) FROM `ac_foto_album` WHERE `id_album` = OLD.id LIMIT 1) = 1 THEN (DELETE FROM `ac_foto_file` WHERE `id_album` = OLD.id) END IF; END $$ DELIMITER; </pre> Вот, вставил не достающие строки. Но, суть не изменилась, ошибка та-же. https://visavi.net/topics/37591/632318 TRIGGER (SQL) Момору Sat, 20 Apr 2013 20:10:05 +0400 Сообщения https://visavi.net/topics/37591/632318 Загрузи скриншот сюда <a href="http://upwap.ru/upload/" target="_blank" rel="nofollow">http://upwap.ru/upload/</a> а то с депозита мало кто будет его смотреть. https://visavi.net/topics/37591/632315 TRIGGER (SQL) Secret Sat, 20 Apr 2013 20:00:32 +0400 Сообщения https://visavi.net/topics/37591/632315 Собственно сами файлы (снимки)<br> <pre class="prettyprint"> CREATE TABLE IF NOT EXISTS `ac_foto_file` ( `id` SERIAL, `id_user` bigint UNSIGNED NOT NULL DEFAULT &#039;0&#039; COMMENT &#039;ID автора&#039;, `id_dir` bigint UNSIGNED NOT NULL DEFAULT &#039;0&#039; COMMENT &#039;ID директории снимка&#039;, `id_album` bigint UNSIGNED NOT NULL DEFAULT &#039;0&#039; COMMENT &#039;ID фотоальбома&#039;, `time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT &#039;Время создания&#039;, `time_alter` TIMESTAMP COMMENT &#039;Время последнего обращения&#039;, `open` set(&#039;0&#039;, &#039;1&#039;, &#039;2&#039;) NOT NULL DEFAULT &#039;2&#039; COMMENT &#039;Возможность комментировать снимок. 2 - разрешено всем, 1 - только друзьям, 0 - запрещено&#039;, `let` set(&#039;0&#039;, &#039;1&#039;) NOT NULL DEFAULT &#039;0&#039; COMMENT &#039;Файл +18. 1 - да, 0 - нет&#039;, `size` bigint UNSIGNED NOT NULL DEFAULT &#039;0&#039; COMMENT &#039;Вес снимка&#039;, `type` set(&#039;png&#039;, &#039;jpg&#039;, &#039;jpeg&#039;, &#039;gif&#039;) NOT NULL COMMENT &#039;Формат снимка&#039;, `name` varchar(128) NOT NULL DEFAULT &#039;&#039; COMMENT &#039;Название снимка&#039;, `opis` varchar(5120) NOT NULL DEFAULT &#039;&#039; COMMENT &#039;Описание снимка&#039;, PRIMARY KEY (`id`), KEY (`time`, `time_alter`, `open`, `size`, `type`), FOREIGN KEY (`id_dir`) REFERENCES `ac_foto_dir` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE, FOREIGN KEY (`id_album`) REFERENCES `ac_foto_album` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE ) ENGINE InnoDB CHARACTER SET UTF8 COLLATE utf8_general_ci; </pre> Заранее благодарен Вам. Спасибо дорогие, Друзья)<br> <br> <em><span style="font-size:x-small">Добавлено через 06:49 сек.</span></em><br> [URL=http://dfiles.ru/files/sd0parqcn]Скрин ошибки[/URL] https://visavi.net/topics/37591/632309 TRIGGER (SQL) Момору Sat, 20 Apr 2013 18:42:21 +0400 Сообщения https://visavi.net/topics/37591/632309 Таблица фотоальбомов<br> <pre class="prettyprint"> CREATE TABLE IF NOT EXISTS `ac_foto_album` ( `id` SERIAL, `id_user` bigint UNSIGNED NOT NULL DEFAULT &#039;0&#039; COMMENT &#039;ID автора&#039;, `id_dir` bigint UNSIGNED NOT NULL DEFAULT &#039;0&#039; COMMENT &#039;ID директории&#039;, `time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT &#039;Время создания&#039;, `time_alter` TIMESTAMP COMMENT &#039;Время последнего обращения&#039;, `open` set(&#039;0&#039;, &#039;1&#039;, &#039;2&#039;) NOT NULL DEFAULT &#039;2&#039; COMMENT &#039;Возможность просмотра снимков альбома другими пользователями. 2 - разрешено всем, 1 - только друзьям, 0 - запрещено всем&#039;, `pass` varchar(24) NOT NULL DEFAULT &#039;&#039; COMMENT &#039;Пароль на просмотр снимков альбома&#039;, `name` varchar(128) NOT NULL DEFAULT &#039;&#039; COMMENT &#039;Название альбома&#039;, `opis` varchar(520) NOT NULL DEFAULT &#039;&#039; COMMENT &#039;Описание альбома&#039;, PRIMARY KEY (`id`), KEY (`time`, `time_alter`, `open`), FOREIGN KEY (`id_dir`) REFERENCES `ac_foto_dir` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE ) ENGINE InnoDB CHARACTER SET UTF8 COLLATE utf8_general_ci; </pre> https://visavi.net/topics/37591/632308 TRIGGER (SQL) Момору Sat, 20 Apr 2013 18:41:18 +0400 Сообщения https://visavi.net/topics/37591/632308 Доброго времени суток, уважаемые Форумчане)<br> Друзья, пытаюсь создать триггер который удалял бы хвосты файлов при удалении директории но, пред моим взором навязчиво возникает мною заскриненая и к посту прикрепленная ошибка. Может это Денвер лагает и лучше его заменить Xampp(ом)?<br> А вот собственно и код злополучного триггера.<br> <pre class="prettyprint"> DELIMITER $$ CREATE OR REPLACE TRIGGER `tg_foto_dir` AFTER DELETE ON `ac_foto_dir` BEGIN IF(SELECT COUNT(*) FROM `ac_foto_file` WHERE `id_dir` = OLD.id LIMIT 1) = 1 THEN (DELETE FROM `ac_foto_file` WHERE `id_file` = OLD.id) END IF; END $$ DELIMITER; </pre> Триггер №2 (Они взаимосвязаны, посему - неразлучны<img src="https://visavi.net/uploads/stickers/smile.gif" alt="smile"> ))<br> <pre class="prettyprint"> DELIMITER $$ CREATE OR REPLACE TRIGGER `tg_foto_alb` AFTER DELETE ON `ac_foto_album` BEGIN IF(SELECT COUNT(*) FROM `ac_foto_album` WHERE `id_album` = OLD.id LIMIT 1) = 1 THEN (DELETE FROM `ac_foto_file` WHERE `id_album` = OLD.id) END IF; END $$ DELIMITER; </pre> <br> <em><span style="font-size:x-small">Добавлено через 00:40 сек.</span></em><br> Таблица директорий<br> <pre class="prettyprint"> /* Таблица директорий в фотоальбомах */ CREATE TABLE IF NOT EXISTS `ac_foto_dir` ( `id` SERIAL, `time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT &#039;Время создания директории&#039;, `time_alter` TIMESTAMP COMMENT &#039;Время последнего изминения&#039;, `open` set(&#039;0&#039;, &#039;1&#039;) NOT NULL DEFAULT &#039;0&#039; COMMENT &#039;Возможность создавать фотоальбомы в директории. 1 - можно, 0 - запрещено&#039;, `size` bigint UNSIGNED NOT NULL DEFAULT &#039;1024&#039; COMMENT &#039;Максимальный вес выгружаеиого снимка&#039;, `dir` varchar(5120) NOT NULL DEFAULT &#039;/&#039; COMMENT &#039;Адрес текущей директории&#039;, `dire` varchar(5120) NOT NULL DEFAULT &#039;/&#039; COMMENT &#039;Адрес предведущей директории&#039;, `name` varchar(128) NOT NULL DEFAULT &#039;&#039; COMMENT &#039;Название директории&#039;, `opis` varchar(1024) NOT NULL DEFAULT &#039;&#039; COMMENT &#039;Описание директории&#039;, PRIMARY KEY (`id`), UNIQUE KEY (`name`), KEY (`time`, `time_alter`, `open`, `size`) ) ENGINE InnoDB CHARACTER SET UTF8 COLLATE utf8_general_ci; </pre> https://visavi.net/topics/37591/632307 TRIGGER (SQL) Момору Sat, 20 Apr 2013 18:39:31 +0400 Сообщения https://visavi.net/topics/37591/632307