在mysql 5.6中添加没有元数据锁定的列
作者:互联网
我使用的是MySQL Server版本:5.6.15 Homebrew.我需要添加新的空列. alter table不需要元数据锁定.为了避免这个MySQL 5.6引入的算法= inplace.这是参考文章http://www.mysqlperformanceblog.com/2013/07/05/schema-changes-whats-new-in-mysql-5-6/.
执行以下sql抛出
mysql> alter table candidate_candidate add column responsible_user_id int, algorithm=INPLACE, lock=NONE;
ERROR 1845 (0A000): ALGORITHM=INPLACE is not supported for this operation.
Try ALGORITHM=COPY.
有没有办法添加列而不影响应用程序读/写?
解决方法:
我在5.6.14上执行了相同的查询并获得了积极的结果:
alter table candidate_candidate add column responsible_user_id int, algorithm=INPLACE, lock=NONE;
Query OK, 0 rows affected (0.48 sec)
Records: 0 Duplicates: 0 Warnings: 0
所以我确信这种操作可以在线完成.您可能遇到了一些例外情况:http://dev.mysql.com/doc/refman/5.6/en/innodb-create-index-limitations.html
我的赌注是过时的时态数据类型,外键或全文索引.桌子上的任何一个?最近从5.5迁移?如果我错了,你能展示完整的CREATE TABLE吗?
标签:mysql-5-6,mysql 来源: https://codeday.me/bug/20190806/1597406.html