我正在使用MariaDB 10.1.9。 简短版本:我真的很想知道的是,如果我可以修改innodb表上的索引auto_increment字段从int到bigint而不锁定表吗?mariadb alter table lock strategy
长版本:有没有详细说明哪些ALTER TABLE操作需要哪个锁定级别?该文档只是说“根据所需的操作和使用的存储引擎,不同的锁定策略可以用于ALTER TABLE。”。它不提供指向任何细节的链接,并且ALTER TABLE页面上的每个操作都没有指定它的所需级别。
从实验中,我知道ADD COLUMN不需要锁定。 MODIFY COLUMN允许读取,但可以手动设置以允许写入? MariaDB documentation表示你可以设置锁定级别,但是如果你没有设置足够的限制,它会给出一个错误 - 但它没有说明错误是什么。当前的表列定义看起来像
`Id` int(10) NOT NULL AUTO_INCREMENT
KEY `Id` (`Id`)
当我尝试
ALTER TABLE MyTable MODIFY MyField bigint AUTO_INCREMENT LOCK=NONE;
我只是得到一个通用的SQL语法错误。即使我指定了DEFAULT,我也会得到一个错误,所以我不知道如何使用LOCK--当我选择了一个不正确的锁定级别时,我希望正确的错误告诉我。