удалите строки из нескольких таблиц

Ваши параметры недостаточны. Никогда не стоит искать что-либо. Вы всегда должны добавлять как можно больше ограничений.

Я предлагаю вам добавить больше параметров. Я нашел ваш кирпич, просто добавив maxArea из 100000.

MinArea, равное 500, не имеет для меня особого смысла, так как самые маленькие части lego намного превосходят это.

8
задан Unihedron 24 October 2014 в 07:52
поделиться

3 ответа

Что ж, если бы вы использовали таблицы InnoDB, вы могли бы настроить каскадное удаление с внешними ключами , которое сделает все это автоматически. Но если у вас есть причина для использования MyISAM, вы просто используете многотабличную DELETE :

DELETE FROM boards, topics, messages
USING boards INNER JOIN topics INNER JOIN messages
WHERE boards.boardid = $boardid
    AND topics.boardid = boards.boardid
    AND messages.boardid = boards.boardid;
19
ответ дан 3 November 2019 в 14:03
поделиться

это может сделать ваша db-система, если вы используете внешние ключи с "on delete cascade".

Посмотрите здесь: http://dev.mysql.com/doc/refman/5.1/en/innodb-foreign-key-constraints.html

6
ответ дан 3 November 2019 в 14:03
поделиться

Вы можете просто проверить наличие

delete from topics where boardid in (select boardid from boards)
delete from messages where boardid in (select boardid from boards)

, но это будет иметь смысл, только если это поведение не всегда применяется. Когда такое поведение всегда должно применяться, реализуйте внешние ключи с помощью delete on cascade

, описанного на миллионе сайтов, в ваших справочных файлах и здесь

2
ответ дан 3 November 2019 в 14:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: