Форум OlegON > Компьютеры и Программное обеспечение > Операционные системы и программное обеспечение > MySQL & MariaDB

Table is specified twice, both as a target for 'DELETE' and as a separate source for data : MySQL & MariaDB

14.01.2025 7:01


14.01.2016 11:10
Собственно, нельзя это делать и при target for 'UPDATE' при запросах вида
SQL код:
delete from table where trim(colname) in (select distinct colname from table) 
лечится просто выделением подзапроса в под-подзапрос с указанием псевдонима. Т.е., по вышеприведенному примеру
SQL код:
delete from table where trim(table.colname) in (select * from (select distinct colname from table) t) 
где в результате выделения подзапрос будет обрабатываться временной таблицей, а не одновременно сканировать и удалять в одной таблице, чего не может сделать мускул.
Часовой пояс GMT +3, время: 07:01.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.