当我在alter table下运行时,仍在运行的应用程序正在遇到死锁:ERROR 1213(40001)在第2行:尝试锁定时发现死锁;尝试重新启动交易
查询:
ALTER TABLE `comm`
ADD COLUMN `thumb_url` varchar(256) NULL DEFAULT NULL COMMENT '' AFTER `search_index_version`,
ADD COLUMN `thumb_src_url` varchar(256) NULL DEFAULT NULL COMMENT '',
LOCK = NONE;
当我阅读mysql 5.6文档时,它不应该锁定,或者我错了吗?
版本:服务器版本:5.6.27-76.0-56-log Percona XtraDB集群(GPL),版本rel76.0,修订版2a6d4e5,WSREP版本25.13,wsrep_25.13 这里有什么指示?
预先感谢您的协助!
答案 0 :(得分:0)
如果您尝试将列添加到应用程序持续使用的表中,那么您可以遇到死锁 - 这意味着您的进程正在等待其他进程完成,而另一个进程正在等待您的进程完成。通常每次选择/插入/更新都会对表格进行某种锁定。
您可以尝试关闭应用程序,进行数据库更改,然后重新打开它。
您也可以尝试暂时锁定表格。我想语法就是这样:
LOCK TABLE comm WRITE, comm READ;
ALTER TABLE `comm`
ADD COLUMN `thumb_url` varchar(256) NULL DEFAULT NULL COMMENT '' AFTER `search_index_version`,
ADD COLUMN `thumb_src_url` varchar(256) NULL DEFAULT NULL COMMENT '';
UNLOCK TABLES;