powered by simpleCommunicator - 2.0.57     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / DELETE в 3ех таблицах
3 сообщений из 3, страница 1 из 1
DELETE в 3ех таблицах
    #32271127
#define
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогие пожалуйста.. имеется следующая струткура:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
      разделы              публикации                  комментарии
+ -------+--------+  +-------+-------+--------+  +--------+-------+----------+
 
| divid | title  |  | pubid | divid | title  |  | noteid | pubid |   text   |
+ -------+--------+  +-------+-------+--------+  |--------+-------+----------+
 
|     11  | title1 |  |     21  |  11     | title1 |  |      31  |     21  | bla bla  |
|     12  | title2 |  |     22  |  12     | title2 |  |      32  |     23  | bla      |
|     13  | title3 |  |     23  |  12     | title3 |  |      33  |     23  | b        |
+ -------+--------+  +-------+-------+--------+  +--------+-------+----------+
 


Необходимо организовать удаление раздела(ов) - не только записей из таблицы "разделы", но и связанных с ними записей из "публикаций" и "комментариев".
Вопрос в том, можно это сделать менее чем в 4 запроса при sql ver==3.23? Сделать более эффективней, чем:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
$divs=array( 11 , 13 );

#удаление комментариев
SELECT pubid FROM разделы WHERE divid IN($divs)
$pubs=[массив извлеченных из пред. запроса записей]
DELETE FROM notes WHERE pubid IN($pubs)

#удаление публикаций
DELETE FROM публикации WHERE divid IN($divs)

#удаление разделов
DELETE FROM divs WHERE divid IN($divs)

Другими словами - удаляются сначала комментарии к тем публикациям, которые находятся в разделах, подлежащих удалению. После удаляются сами публикации и затем разделы. Как это дело оптимизировать?
...
Рейтинг: 0 / 0
DELETE в 3ех таблицах
    #32272171
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что здесь неоптимизировано ?
тебе 4 запроса не нравятся ?

Тогда такой вариант :
меняешь тип таблиц на InnoDB, настраиваешь foreign key .... ON DELETE CASCADE и у тебя все одним запросом удалятся будет
MySQL Version >= 3.23.44
...
Рейтинг: 0 / 0
DELETE в 3ех таблицах
    #32272481
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дополнительно читать тут.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / DELETE в 3ех таблицах
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]