2017-01-17 3 views
0

Доброго дня,Sql Синтаксисы ошибки с PHPMyAdmin

У меня есть вопрос, используя PHPMyAdmin для моей базы данных, я в новом в этом, и это MySQL структура из 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; 

ошибка:

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 

И также прилагается моя структура таблицы phpmyadmin. enter image description here Поймите любую помощь.

+0

Что такое "previewmysql"? Кажется, он создает неправильный SQL для вас. –

ответ

1

ENUM(0) это неправильный формат, если вы хотите это для гендерных ролей, то вы можете использовать: -

ENUM('Male', 'Female') то есть вы можете запустить этот запрос: -

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; 
+0

Но это было бы очень странным семейным положением – Strawberry

+0

Привет, спасибо за ответ, внесенный некоторыми изменениями, которые вы сделали сейчас, это ошибка. У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования около '0) NOT NULL, 'email' VARCHAR (20) NOT NULL,' phone' INT (15) NULL, 'marital_sta' в строке 1 – mkwilfreid

+0

@ mkwilfreid Я отредактировал мой запрос, вы можете проверить сейчас –

1

Вы использовали тип данных ENUM в своей таблице. И при условии, 0 в качестве аргумента, но

Значение перечисления должен быть строкой в ​​кавычках буквальным

Вы можете обратиться к документации MySql для получения дополнительной информации

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

2

Попробуйте it.Hope ошибки идет boom.I только фиксированные ваши ошибки. Но ваша структура таблицы недостаточно хороша. дайте время, затем день за днем ​​вы также будете экспертом по этому вопросу.

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; 
+0

hummm не уверен, что не так с моей структурой таблицы, поэтому я могу его изменить – mkwilfreid

2

Изменить ENUM декларация ENUM («мужской», «женщина») для пола колонки и другие также, как показано в таблице. Он не примет ENUM (0).

Смежные вопросы