![]() |
|
Модераторы: skyboy |
![]()
|
|
| 444ert666 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 9.5.2006 Репутация: нет Всего: нет |
Добрый день!
Я совсем еще плохо знаю SQL. И поэтому проблема для меня вполне серьезная, даже не знаю с какой стороны подойти и гугл ничем не поог:( Описание: Версия сервера: 5.1.29-rc-community Есть таблица (depends) с одним полем table, в этой таблице находится список зависимых таблиц(зависят они все от одной таблицы, она в принципе мне не интересна, просто хочу повесить на нее триггер, но пока проблемы возникают даже с пустяками). У всех зависимых таблиц есть одно одинокавое поле: pid. задача: Нужно сначала выбрать весь список зависимых таблиц из depends, и потом для каждой из них выполнить одну и туже операцию, например:удалить во всех зависимых таблицах запись с pid=3. Даже не знаю с какой стороны подойти:((( Заранее спасибо! |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
как на меня, вполне достаточно внешних ключей(FOREIGN KEY), если необходимо автоматическое поддержание ссылочной целостности; или формирование запросов на стороне клиента, если необходима хитрая логика управления узлами(удалить все элементы такого типа, связанные с этим элементом). зачем такие хитрости, как имя таблицы в поле таблицы и посроение динамических запросов на стороне сервера?
|
|||
|
||||
| 444ert666 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 9.5.2006 Репутация: нет Всего: нет |
skyboy, возможно вы и правы
База используется php скриптом, в ней могут появлятся в любой момент времени новые таблицы с текстовыми данными. Грубо говоря это таблицы с фразами на разных языках. предположим есть таблица messages (ее поля: id(key) eid(id фразы для всех языков для конкретной фразы одно значение, но разное для разных фраз} text(собственно перевод фразы) pid(идентификатор языка)) После вставки новой фразы через мой php-скрипт в эту таблицу,добавляется n-ое число записей, равное числу записей в таблице languages (ее поля: pid(идентификатор языка) name(название языка) Дык вот хотелось бы чтобы таблица messages жестко зависила от таблицы languages, т.е. при добавлении нового записи в languages, сервер пробегал по всем уникальным значениям messages.eid и втсавлял бы по новой записи полностью идентичной каждой уникальной записи messages.eid, за исключением поля messages.pid, у этого поля должно быть значение - идентификатор нового языка.... .ПОдобная процедура должна срабатывать и при удалении языкаиз таблицы languages, только теперь мы удаляем записи для каждого уникального messages.eid, со значением messages.pid = идентификатору удаленного языка. Собственно, почему я решил избрать еще одну таблицу для храненияимен таблиц таким образом зависящих от списка доступных языков, потому, что таблицы могут добавлятся всякого характера и зависимые и независимые, те которые зависят я вставлял в таблицу depends, таким образом всегда имея под рукой список зависимых от языков таблиц. ВОт только что делать дальше с этим списком никак не пойму:((( подскажиет пожалуйста, может есть другие выходы? P.S. Я конечно ог быобновлять все таблицы с помощью php, но всеж хотелось бы использовать возможности MySQL, по двум причинам: 1)все ж это будет работать мне кажется быстрее(или я заблуждаюсь?) 2)получше разобраться в MySQL, дабы хоть как-то использовать его возможности на максимум, не ограничиваясь SLECT,INSERT,UPDATE,DELET. ПОдскажите, если есть какие-нибудь идеи для организации такого алгоритма. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MySQL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |