mkwilfreid
mkwilfreid

Reputation: 128

Sql error syntaxes with phpmyadmin

Good day,

I have an issue using the phpmyadmin for my database, I'm in new in this and this is the mysql structure from previewmysql:

CREATE TABLE `mydb`.`attendant` 
  ( 
     `id`             INT NOT NULL auto_increment, 
     `first_name`     VARCHAR(20) NOT NULL, 
     `names`          VARCHAR(50) NOT NULL, 
     `gender`         ENUM(0) NOT NULL, 
     `email`          VARCHAR(20) NOT NULL, 
     `phone`          INT(15) NULL, 
     `marital_status` ENUM(0) NOT NULL, 
     `added_date`     DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, 
     `membership`     ENUM(0) NOT NULL, 
     `address`        VARCHAR(20) NOT NULL, 
     `suburb`         ENUM(0) NOT NULL, 
     `partner_name`   VARCHAR(25) NULL, 
     PRIMARY KEY (`id`), 
     UNIQUE `email_address` (`email`) 
  ) 
engine = innodb; 

The error is:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '0) NOT NULL , `email` VARCHAR(20) NOT NULL , `phone` INT(15) NULL , `marital_sta' at line 1

And also attached is my phpmyadmin table structure. enter image description here Will appreciate any help.

Upvotes: 0

Views: 332

Answers (4)

A Biswas
A Biswas

Reputation: 431

ENUM(0) is wrong format , if you want that for gender roles then you can use :-

ENUM('Male', 'Female') i.e you can run this query :-

CREATE TABLE `mydb`.`attendant` 
  ( 
     `id`             INT NOT NULL auto_increment, 
     `first_name`     VARCHAR(20) NOT NULL, 
     `names`          VARCHAR(50) NOT NULL, 
     `gender`         ENUM('Male', 'Female') NOT NULL, 
     `email`          VARCHAR(20) NOT NULL, 
     `phone`          INT(15) NULL, 
     `marital_status` ENUM('Single','Married','divorced') NOT NULL, 
     `added_date`     DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, 
     `membership`     ENUM('no','yes') NOT NULL, 
     `address`        VARCHAR(20) NOT NULL, 
     `suburb`         ENUM('Cape Town','Woodstock') NOT NULL, 
     `partner_name`   VARCHAR(25) NULL, 
     PRIMARY KEY (`id`), 
     UNIQUE `email_address` (`email`) 
  ) 
engine = innodb; 

Upvotes: 1

Rishi Raj
Rishi Raj

Reputation: 21

Modify ENUM declaration as ENUM ('male', 'female') for gender column and others also as shown in your table. It will not accept ENUM(0).

Upvotes: 2

Didarul Alam
Didarul Alam

Reputation: 79

Try it.Hope errors goes boom.I just fixed your errors. But your table structure is not good enough. give time, then day by day you will also be expert on it.

  CREATE TABLE `mydb`.`attendant` 
  ( 
     `id`             INT NOT NULL auto_increment, 
     `first_name`     VARCHAR(20) NOT NULL, 
     `names`          VARCHAR(50) NOT NULL, 
     `gender`         ENUM('0','1') NOT NULL, 
     `email`          VARCHAR(20) NOT NULL, 
     `phone`          INT(15),
     `marital_status` ENUM('0','1') NOT NULL, 
     `added_date`     DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, 
     `membership`     ENUM('0','1') NOT NULL, 
     `address`        VARCHAR(20) NOT NULL, 
     `suburb`         ENUM('0','1') NOT NULL, 
     `partner_name`   VARCHAR(25) NULL, 
     PRIMARY KEY (`id`), 
     UNIQUE `email_address` (`email`) 
  ) 
engine = innodb; 

Upvotes: 2

Anil Agrawal
Anil Agrawal

Reputation: 3026

You have used ENUM data type in your table. And provided 0 as argument but

An enumeration value must be a quoted string literal

You can refer the mySql documentation for more information

http://dev.mysql.com/doc/refman/5.7/en/enum.html

Upvotes: 1

Related Questions