Почему этот запрос MySQL не работает? - PullRequest
2 голосов
/ 02 ноября 2010

mysql

create temporary table t2 
select min(id) 
from mycontent 
group by download_link;   

ОШИБКА 1205 (HY000): превышено время ожидания блокировки;попробуйте перезапустить транзакцию

Ответы [ 3 ]

0 голосов
/ 02 ноября 2010

Как я понимаю group_by, вам нужно выбрать сгруппированные поля для запроса, чтобы иметь смысл. Чего вы пытаетесь достичь?

Представьте себе эту таблицу:

download_link, id
-----------------
''           , 3
'foo'        , 3

Это, используя ваш запрос, выберет

3
3

и поэтому объясните вашу проблему с блокировкой, поскольку строка 1 уже заблокирована транзакцией, но должна быть заменена на строку 2.

0 голосов
/ 03 ноября 2010

Ваша таблица mycontent может быть заблокирована какой-либо другой транзакцией, когда вы пытаетесь выбрать из нее.

0 голосов
/ 02 ноября 2010

Возможно, попробуйте сделать их отдельно.

1) create temporary table t2;

2) select min(id) from mycontent group by download_link;   

Это стоит попробовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...