Mazzy
Mazzy

Reputation: 14189

mysql enum error: 1067 what is the mistake?

Errore
query SQL:

CREATE TABLE  `hospital_jqm`.`users` (

`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`name` VARCHAR( 80 ) NOT NULL ,
`surname` VARCHAR( 80 ) NOT NULL ,
`address` VARCHAR( 80 ) NOT NULL ,
`birth_place` VARCHAR( 50 ) NOT NULL ,
`province` VARCHAR( 5 ) NOT NULL ,
`birth_date` DATE NOT NULL ,
`sex` ENUM(  'male',  'female' ) NOT NULL DEFAULT  '''male''',
`case` ENUM(  'politrauma',  'cardiologico',  'neurologico' ) NOT NULL DEFAULT      '''politrauma'''
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci;

 Messaggio di MySQL: 

 #1067 - Invalid default value for 'sex' 

I tried to create this table but I received this error.why?where is the error?

Upvotes: 0

Views: 1558

Answers (3)

Svisstack
Svisstack

Reputation: 16616

Instead of '''male''' it should be 'male'.

Upvotes: 2

rmaiolo
rmaiolo

Reputation: 21

try not using triple quotes..the following worked fine for me..

CREATE TABLE `users` (

`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`name` VARCHAR( 80 ) NOT NULL ,
`surname` VARCHAR( 80 ) NOT NULL ,
`address` VARCHAR( 80 ) NOT NULL ,
`birth_place` VARCHAR( 50 ) NOT NULL ,
`province` VARCHAR( 5 ) NOT NULL ,
`birth_date` DATE NOT NULL ,
`sex` ENUM(  'male',  'female' ) NOT NULL DEFAULT  'male',
`case` ENUM(  'politrauma',  'cardiologico',  'neurologico' ) NOT NULL DEFAULT      'politrauma'
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci;

Upvotes: 1

Bohemian
Bohemian

Reputation: 425003

You've got extra quotes in there. Change to this:

sex ENUM('male',  'female') NOT NULL DEFAULT 'male'

You were specifying a default value that was not in the list, ie 'male' (with literal quotes included in the value) rather than male

Upvotes: 1

Related Questions