powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вечная возня с "You can't specify target"
5 сообщений из 5, страница 1 из 1
Вечная возня с "You can't specify target"
    #37412492
Alive94
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возможно ли сделать скрипт рабочим?

Код: plaintext
UPDATE `germany` set `goals` = (select goals from germany where `name`='Nickname') where `name`='Nickname1';

(если что, то у меня ошибка 1093 - You can't specify target table 'germany' for update in FROM clause )
...
Рейтинг: 0 / 0
Вечная возня с "You can't specify target"
    #37412500
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alive94Возможно ли сделать скрипт рабочим?

Код: plaintext
UPDATE `germany` set `goals` = (select goals from germany where `name`='Nickname') where `name`='Nickname1';

(если что, то у меня ошибка 1093 - You can't specify target table 'germany' for update in FROM clause )
обычно если просто добавить скобок и сделать из них select, то select from germany превращается во временную таблицу и обновление уже таки проходит.
...
Рейтинг: 0 / 0
Вечная возня с "You can't specify target"
    #37412510
Alive94
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
эх, прошу прощения, но я ничего не понял.
...
Рейтинг: 0 / 0
Вечная возня с "You can't specify target"
    #37412534
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alive94,

Код: plaintext
1.
2.
3.
4.
5.
UPDATE `germany` 
SET `goals` = (
  SELECT `goals` FROM (SELECT `goals` FROM `germany` WHERE `name` = 'Nickname' LIMIT  1 ) as `tmp`
)
WHERE `name` = 'Nickname1'
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Вечная возня с "You can't specify target"
    #38787384
nistelroi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообще есть два способа ( ramzes.ws/blog/cant-specify-target-table-for-update-in-from-clause ) решить проблему с You can't specify target
Иногда второй способ через JOIN может быть нагляднее и быстрее.
В данном случае возможно это не так, но для примера запрос будет выглядеть таким образом

Код: sql
1.
2.
3.
4.
UPDATE germany g1
  JOIN germany g2
    ON g1.name = 'Nickname1' AND g2.name = 'Nickname'
  SET g1.goals = g2.goals



Модератор: Ссылка заменена на текст. Реклама и некропостинг у нас не приветствуются.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вечная возня с "You can't specify target"
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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