我正在使用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--當我選擇了一個不正確的鎖定級別時,我希望正確的錯誤告訴我。