Il manuale di riferimento MySQL non fornisce un esempio di cancellazione su come eseguire questa operazione.Come posso aggiungere altri membri alla mia colonna di tipo ENUM in MySQL?
Ho una colonna di nomi di paese di tipo ENUM a cui ho bisogno di aggiungere altri paesi. Qual è la sintassi corretta di MySQL per raggiungere questo obiettivo?
Ecco il mio tentativo:
ALTER TABLE carmake CHANGE country country ENUM('Sweden','Malaysia');
L'errore che ottengo è: ERROR 1265 (01000): Data truncated for column 'country' at row 1.
La colonna country
è la colonna ENUM-tipo nel già comunicato.
SHOW CREATE TABLE USCITA:
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)
Selezionare Paese DISTINTO DA carmake USCITA:
+----------------+
| country |
+----------------+
| Italy |
| Germany |
| England |
| USA |
| France |
| South Korea |
| NULL |
| Australia |
| Spain |
| Czech Republic |
+----------------+
Avrei azzardato una linea di fondo più forte ... "usa ENUM solo quando sei al 100% morto, certo che i valori non cambieranno mai". Se un tavolo diventa più grande, sarà un problema se dovessi cambiare quei valori. – DougW
Non sono sicuro di essere d'accordo con questa linea di fondo. Fidati di me non mi piace affatto ENUM ma non vedo il pericolo nell'aggiungere al possibile ENUM. ENUM è, al suo centro, una mappatura di 0 -> Opzione 1, 1-> Opzione 2, ecc. L'aggiunta a ciò non dovrebbe causare un problema. – JoshStrange
@JoshStrange Non è tanto un pericolo, può essere un enorme inconveniente quando l'ordine del tuo ENUM è importante (ad esempio, se usato per l'ordine). – 1in9ui5t