我正在尝试重命名一个表,但它总是挂起Waiting for table metadata lock
。以下是我尝试这样做的方法:
start transaction;
RENAME TABLE `main_territorypricing` TO `main_territorypricing2`;
RENAME TABLE `main_territorypricing1` TO `main_territorypricing`;
COMMIT;
然而,第一个重命名声明无限期地挂起。我该如何重命名这两个表?
答案 0 :(得分:2)
我非常确定RENAME TABLE
会终止交易。
您可以在单个原子语句(无事务)中重命名:
RENAME TABLE `main_territorypricing` TO `main_territorypricing2`,
`main_territorypricing1` TO `main_territorypricing`;
它必须等待任何其他忙于任何表的连接;确保你没有放弃一些联系。