форум vBSupport.ru > vBulletin > Вопрос — Ответ
  • »
VBsupport перешел с домена .ORG на родной .RU Ура! Пожалуйста, обновите свои закладки - VBsupport.ru
 
 
 
 
Rustle
Продвинутый
 
Rustle's Avatar
Default SQL
0

Имеется раздел форума с множеством тем (Корзина) , при попытке удалить ее через админку- зависает с ожиданием ответа и ни чего не происходет. Подскажите как правильно сформировать SQL запрос-чтобы уничтожить этот раздел .



было бы удобно если бы была тема например с названием SQL запросы , с всевозможными часто юзаемыми вариациями-думаю не я один в этом деле ламер
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
 
 
netwind
Гуру
 
netwind's Avatar
Default
0

да что-то никаких правильных и быстрых способов не вижу.
каркас кода vbulletin не предоставляет массовых манипуляций с темами. только по одной.

так что остается идти в обход и изучать структуру бд самостоятельно.
один запрос это вы размечтались. таблиц много.
 
 
Ghost
Гуру
 
Ghost's Avatar
Default
1

Rustle, хм... Можно попробовать так:
  1. Удаляем раздел:
    Code:
    DELETE FROM {TABLE_PREFIX}forum WHERE forumid=ИД_РАЗДЕЛА
  2. Потом удаляем темы:
    Code:
    DELETE FROM {TABLE_PREFIX}thread WHERE forumid=ИД_РАЗДЕЛА
  3. Остаются сообщения, не привязанные ни к одной теме (темы удален) - их можно удалить либо через админку (см. "Обслуживание"), либо запросом типа
    Code:
    DELETE FROM {TABLE_PREFIX}post WHERE threadid NOT IN (SELECT threadid FROM {TABLE_PREFIX}thread)
  4. Остается только обновить счетчики разделов, тем и постов пользователей - это делается в админке.
 
 
Rustle
Продвинутый
 
Rustle's Avatar
Default
0

SQL-запрос:
DELETE FROM {bb_}forum WHERE forumid =278
Ответ MySQL:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '{bb_}forum WHERE forumid=278' at line 1
 
 
netwind
Гуру
 
netwind's Avatar
Default
0

modlog,editlog,subscriptions, infractions, (и наверняка я что-то еще забыл) как все это будет работать?
это только базовые таблицы, а есть еще хаки типа Спасибо.
Удаление через админку реально удаляет всю связанную информацию.
 
 
Rustle
Продвинутый
 
Rustle's Avatar
Default
0

netwind, блин-не хочет через адмиинку никак... вчера запустил процесс-и ждал около 3 часов, надоело -выключил.
 
 
netwind
Гуру
 
netwind's Avatar
Default
1

Rustle, да он удаляет только медленно. надо поставить поменьше за раз
 
 
Rustle
Продвинутый
 
Rustle's Avatar
Default
0

netwind, в 14 часов начал новую попытку-в 18 часов раздел прекратил свое существование
 
 
Dimoks
Гость
Default

Rustle а как ты удалил я не понял? В админке - "управление разделами" - "удалить раздел" или "темы и посты" - "удалить все темы в разделе"?
Если удалять с включенным форумом то это очень медленно.
Если выключать форум (в админке) и запускать удаление тем то он быстро удаляет... где-то 1 тема = 2 секунды. Т.е. чтобы удалить 100тыс тем надо 5 часов... Ну это очень условно.

Как ты делал?
 
 
netwind
Гуру
 
netwind's Avatar
Default
0

Dimoks, это sql-запрос, который некорректно сносит раздел. А потом все "чинится" штатными средствами и они уже умеют работать пошагово.
на безрыбье решение даже неплохое.

п.3 лучше не использовать. Запрос ужасный. Почти всегда в mysql поздапросы исполняются плохо.
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT +4. The time now is 08:55 AM.


Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Loading...