Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Mysql From enum to tinyint problems

Tags:

mysql

I've got a table with

`terms_of_payment` enum('0','1') NOT NULL DEFAULT '0' COMMENT ''

I run

ALTER TABLE `customer` 
CHANGE `terms_of_payment` `terms_of_payment` TINYINT( 1 ) 
     NOT NULL DEFAULT 0 COMMENT '';

and I found all my customers (with '0' value) set to 1 when I'm waiting 0

Could you explain me, what's the trouble, please ?

Bye

like image 509
Whisher Avatar asked Sep 30 '11 08:09

Whisher


1 Answers

Converting the ENUM to TINYINT might give unexpected results, as MySQL will actually already store your ENUM in the form of integers. To get the result you want, you should actually start by converting your column to a CHAR(1) and then go to TINYINT(1).

like image 141
Romain Avatar answered Oct 19 '22 19:10

Romain