MySQL

:: DEVELOPER ZONE

Login / Register

  • MySQL.com
  • Developer Zone
  • Partners
  • Online Shop
  • Downloads
  • Documentation
  • Forums
  • Lists
  • Bugs
  • Events
  • User Groups
  • Guilds
  • Blogs
  • Support
  • Resources
  • Books
  • FAQ

Справочное руководство по MySQL 4.0. :: A Проблемы и распространенные ошибки :: A.5 Проблемы, относящиеся к запросам :: A.5.5 Удаление строк из взаимосвязанных таблиц

  • Overview
  • MySQL Reference Manual
  • MaxDB Documentation
  • Connectors

Search the MySQL manual:


  • Справочное руководство по MySQL 4.0.

  • A.5 Проблемы, относящиеся к запросам
  • A.5.1 Чувствительность к регистру при поиске
  • A.5.2 Проблемы с использованием столбцов типа DATE
  • A.5.3 Проблемы со значением NULL
  • A.5.4 Проблемы с alias
  • A.5.5 Удаление строк из взаимосвязанных таблиц
  • A.5.6 Решение проблем с отсутствием строк, удовлетворяющих условиям поиска
  • A.5.7 Проблемы со сравнением чисел с плавающей точкой

Get the MySQL Language Reference and MySQL Administrator's Guide from MySQL Press!


Additional languages

  • German


Learn about new MySQL releases, technical articles, events and more.

Subscribe to the monthly MySQL Newsletter!


Previous / Next / Up / Table of Contents

A.5.5. Удаление строк из взаимосвязанных таблиц

Поскольку MySQL до 4.1.0 не поддерживает вложенных запросов, а также использование более одной таблицы в команде DELETE (до версии 4.0), то для удаления строк из 2 взаимосвязанных таблиц следует использовать следующий подход:

  1. Выполните в главной таблице SELECT строк на основе некоторого условия WHERE.

  2. Выполните DELETE строк главной таблицы на основе этого же условия.

  3. DELETE FROM related_table WHERE related_column IN (selected_rows).

где selected_rows - количество строк, выбранных по запросу в п.1.

Если общее количество символов в запросе с related_column больше 1048576 (значение max_allowed_packet по умолчанию), то следует разбить запрос на меньшие части и выполнить несколько команд DELETE. Если related_column является индексом/индексирован, то самый быстрый DELETE получится при удалении 100-1000 идентификаторов related_column за запрос. Если related_column не индекс, то скорость не зависит от количества аргументов в операторе IN.


This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.

Top / Previous / Next / Up / Table of Contents

© 1995-2005 MySQL AB. All rights reserved.

  • About MySQL
  • Careers
  • Site Map
  • Contact Us
  • Legal
  • Privacy Policy
  • Trademark Info
  • No Software Patents!