ENUM () 목록을 변경할 수 있는지 확실하지 않으므로 테스트를 수행했습니다. MySQL v5.1.58에서는 ENUM ( 'yes', 'no') 유형의 'bool'이라는 하나의 필드를 포함하는 테스트 InnoDB 테이블을 만들었습니다.
그런 다음 나는 ...
ALTER TABLE `test`
CHANGE `bool` `bool` ENUM( 'yes', 'no', 'maybe' )
CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL
... 그리고 효과가있었습니다.
내가 잘못 했어? DB 엔진에 의존합니까? 모든 사람이 ENUM () 목록을 변경할 수 없다고 말하는 이유는 무엇입니까? 예. 여기 http://komlenic.com/244/8-reasons-why-mysqls-enum-data-type-is-evil/
3
당신이 언급 한 기사는 불가능하다고 말하지 않습니다. 엔진이 전체 테이블 스캔을 수행하기 때문에 멤버 목록 변경이 비용이 많이 든다고 말합니다.
—
a1ex07
10 월에 ENUM ( dba.stackexchange.com/a/6966/877 ) 에 대한 링크를 언급했습니다 . 또한 MyISAM ( dba.stackexchange.com/a/6548/877 ) 에이 작업을 수행하는 방법에 대한 참조를 게시했습니다 . 이 경우 InnoDB는 의문의 여지가 없습니다.
—
RolandoMySQLDBA