Задавайте вопросы, мы ответим
Вы не зашли.
В работе с базами я практически новичок.
Необходимо реализовать базу в виде дерева, способ реализации - вложенные множества. Чтобы извне не делать множество запросов при добавлении/удалении записей в таблице хотелось бы использовать триггеры, дабы все необходимые изменения в структуре дерева производились непосредственно на сервере.
Вопрос: насколько корректен следующий кусок кода? Что надо поменять? Вероятнее всего я синтаксически что-то неправильно описываю.. только вот что именно мне пока не понятно(
Отредактированно Seuren (10.02.2011 14:21:34)
Неактивен
А текст ошибки какой?
У меня ощущение, что оно будет работать только для деревьев с ворженностью 1 — Вы
не выделяете диапазонов адресов для левого-правого значений. В результате, ребенка
поместить просто негде.
Неактивен
сама структура дерева имеет вид (id, Level, Left, Rigth, <доп поля>).. само устройство дерева вполне нормально и корректно. Проблема состоит в том, что я сам триггер не могу создать - выдается сообщение о синтаксической ошибке. ошибка типа "ты вот тут что-то не так наверно написал "" в строке №"
Неактивен
с проблемой создания триггера вроде рзобрался.. теперь вот только при попытке добавить новую запись выдает:
Отредактированно Seuren (11.02.2011 09:21:28)
Неактивен
Да, debian в этом месте был не прав Или закомментируйте строку в файле
конфигурации, или поставьте значение побольше. 128К не хватает.
Неактивен
Спасибо) помогло) Есть еще один интересный вопрос. Насколько я знаю в триггере нельзя изменять строки в таблице напрямую. Существует ли возможность это обойти? Пока есть мысль использовать вызовы процедур, которые и будут вносить изменения.
Неактивен
В этой же таблице нельзя, потому что «рекурсия: см рекурсия». А в других
таблицах никто не запрещал
Неактивен
Ясно, спасибо. Жаль конечно, что рекурсия, т.к. мне в той же таблице надо изменить в других записях по паре полей. Видимо придется отдельно делать вызов процедуры для этого.
Неактивен