W podręczniku referencyjnym MySQL nie podano przykładowego sposobu wykonania tej czynności.Jak dodać więcej członków do mojej kolumny typu ENUM w MySQL?
Mam kolumnę nazwy krajów typu ENUM, która jest potrzebna do dodania kolejnych krajów. Jaka jest poprawna składnia MySQL, aby to osiągnąć?
Oto moja próba:
ALTER TABLE carmake CHANGE country country ENUM('Sweden','Malaysia');
Błąd pojawia się: ERROR 1265 (01000): Data truncated for column 'country' at row 1.
Kolumna country
jest kolumna typu ENUM w wyżej oświadczeniu.
SHOW CREATE TABLE wyjściowa:
mysql> SHOW CREATE TABLE carmake;
+---------+---------------------------------------------------------------------+
| Table | Create Table
+---------+---------------------------------------------------------------------+
| carmake | CREATE TABLE `carmake` (
`carmake_id` tinyint(4) NOT NULL AUTO_INCREMENT,
`name` tinytext,
`country` enum('Japan','USA','England','Australia','Germany','France','Italy','Spain','Czech Republic','China','South Korea','India') DEFAULT NULL,
PRIMARY KEY (`carmake_id`),
KEY `name` (`name`(3))
) ENGINE=InnoDB AUTO_INCREMENT=49 DEFAULT CHARSET=latin1 |
+---------+---------------------------------------------------------------------+
1 row in set (0.00 sec)
SELECT DISTINCT kraj z carmake wyjściowa:
+----------------+
| country |
+----------------+
| Italy |
| Germany |
| England |
| USA |
| France |
| South Korea |
| NULL |
| Australia |
| Spain |
| Czech Republic |
+----------------+
Zaryzykowałbym mocniejszą linię podstawową ... "używaj tylko ENUM, gdy jesteś w 100% martwy, pewny, że wartości nigdy się nie zmienią". Jeśli stół się powiększy, będzie to bolało, jeśli będziesz musiał zmienić te wartości. – DougW
Nie jestem pewien, czy zgadzam się z tą podstawową linią. Zaufaj mi, że w ogóle nie lubię ENUM, ale nie widzę niebezpieczeństwa w DODANIU do możliwej ENUM. ENUM jest, w jego rdzeniu, mapowaniem 0 -> Opcja 1, 1-> Opcja 2, itp. Dodanie do tego nie powinno powodować problemu. – JoshStrange
@JoshStrange To nie jest takie niebezpieczeństwo, może być ogromną niedogodnością, gdy kolejność ENUM jest ważna (na przykład, gdy jest używana do zamawiania). – 1in9ui5t