![]() |
MySQL trigger
Добрый день. Ничего по триггерам не нашел по этому создаю новую тему.
Суть проблемы. Я создаю экст с помощью kickstarter и при создании одной из таблиц возникла необходимость выводить в одном из полей сумму трех других для лучшей ориентации в be (в качестве метки при создании таблицы в kickstarter выбирается только одно поле, а ориентироваться по одному полю в BE не получается надо по значению 3-х полей). Пример: поля таблицы поле1 поле2 поле3 поле4 - (только чтение в BE) поле4=поле1+поле2+поле3 Как это можно сделать? Есть идея использовать триггер, но его как я понимаю надо прописать в файле SQL запроса экстеншена что бы при установки экст триггер создавался автоматически. У меня этот вариант не пошол, может чтото не так сделал :confused:. В связи с этим вопрос, такой вариант реально сделать? P.S. просьба строго не судить это мой первый экстеншен. :) |
Что жалко подсказать? Сколько времени прошло ни одного ответа. :(
|
Насколько я помню, в SQL-файле расширения допустим только определённый SQL, который может распарсить соответствующий класс ядра.
По-хорошему, подобной денормализацией должен заниматься ORM, но встроенного ORM на данный момент в TYPO3 нет. Поэтому, возможно, вам стоит добавлять этот триггер при инсталляции расширения. Примерно таким образом, каким расширения делают миграцию схемы данных при обновлении до более новой версии. Кажется, в tt_news что-то такое было. |
Спасибо за ответ.
Триггер добавил в базу в ручную все работает. На счет инсталляции, пробовал запрос добавлять в файл ext_tables.php и после инсталляции запрос появлялся в файле temp_CACHED_ps5e24_ext_tables.php, если не ошибаюсь. Но триггер так и не создался, скорее всего запрос неправильно прописал, разбираться не стал потому что итак время много потратил да и вручную создал. Направление в котором я шел хоть правильное? На счет "миграции схемы данных" будет сложновато я с тайпой всего пол года знаком, внутренностей практически не знаю. |
Нет, направление неправильное - если вы пропишете свой запрос в ext_tables, то он будет выполняться при каждом запросе, а вам нужно один раз выполнить запрос, чтобы создать триггер.
|
Часовой пояс GMT +4, время: 20:24. |
Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot