|
Взятие имени бд из поля таблицы
|
|||
---|---|---|---|
#18+
Всем привет! Прошу помощи профессионалов. Таблица: id / field_one / field_two / field_bd_name Есть триггер в котором прописано следующее: при изменении таблицы сравнить значения поля и если есть различия с полем таблицы другой базы данных, то обновить их. BEGIN UPDATE bd_name.table_name SET field_one = NEW.field_one WHERE field_two = OLD.field_two; END Сейчас возникла необходимость брать bd_name с поля текущей таблицы field_bd_name, поскольку этот скрипт должен передавать значения полей в различные базы данных. После поиска решения поняла, что можно запихнуть значение поля field_bd_name в переменную и ее потом использовать в качестве bd_name. Это делается с помощью динамического sql. Но с триггерами динамический sql не работает. Есть ли другое решение моей задачи? Надеюсь, я доступно описала суть задачи, если нет, то опишу детальнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2019, 14:43 |
|
Взятие имени бд из поля таблицы
|
|||
---|---|---|---|
#18+
Динамический DML - это зло. А также ужас и кошмар. Не сами по себе - а с точки зрения наличия соображалки у архитектора системы. annsaityНадеюсь, я доступно описала суть задачи Во-первых, ни хрена не понять. Во-вторых, Вы описали не задачу, а то, как Вы её собираетесь решать. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2019, 16:17 |
|
Взятие имени бд из поля таблицы
|
|||
---|---|---|---|
#18+
Akina, В моем понимании я описала задачу: annsaityСейчас возникла необходимость брать bd_name с поля текущей таблицы field_bd_name, поскольку этот скрипт должен передавать значения полей в различные базы данных. а то что не понятно, то это другой вопрос)) Могу попробовать так: Как я могу обратится в запросе к базе данных, имя которой мне нужно взять с таблицы, а именно с поля field_bd_name. Будет отлично, если вместо bd_name каким-то образом можно подставить значение поля field_bd_name . bd_name .table_name SET field_one = NEW.field_one WHERE field_two = OLD.field_two; ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2019, 17:39 |
|
Взятие имени бд из поля таблицы
|
|||
---|---|---|---|
#18+
annsaityобратится в запросе к базе данных, имя которой мне нужно взять с таблицы annsaityвместо bd_name каким-то образом можно подставить значение поля field_bd_name . bd_name .table_name Код: sql 1.
Это - ТОЛЬКО динамический SQL, который в триггер не влезает. Альтернативно - набор запросов со всеми возможными значениями bd_name и выбор-выполнение подходящего через CASE. Конечно, при наличии такого набора. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2019, 21:57 |
|
|
start [/forum/topic.php?fid=47&msg=39870069&tid=1828942]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
63ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 173ms |
0 / 0 |