我想知道是否可以在整个表中更改ENUM
值,以便在表示所述ENUM
值的所有行中也进行更改。
答案 0 :(得分:25)
如果要更改枚举值:
假设您的旧枚举是:
ENUM('English', 'Spanish', 'Frenchdghgshd', 'Chinese', 'German', 'Japanese')
改变用途:
-- Add a new enum value
ALTER TABLE `tablename` CHANGE `fieldname` `fieldname` ENUM
('English', 'Spanish', 'Frenchdghgshd', 'Chinese', 'German', 'Japanese', 'French');
-- Update the table to change all the values around.
UPDATE tablename SET fieldname = 'French' WHERE fieldname = 'Frenchdghgshd';
-- Remove the wrong enum from the definition
ALTER TABLE `tablename` CHANGE `fieldname` `fieldname` ENUM
('English', 'Spanish', 'Chinese', 'German', 'Japanese', 'French');
MySQL可能会通过你表格中的所有行来尝试更新内容,我听说有关计划优化的故事,但我不确定这是否真的发生了。