MySQL сказал # 1064 - PullRequest
       11

MySQL сказал # 1064

0 голосов
/ 14 февраля 2019

Я хочу создать таблицу с кодом SQL.Это всегда дает мне ошибку.Я обновил MySQL до maria Server, но все еще получаю ту же ошибку.Подскажите, пожалуйста, что не так с кодом

Мой код:

CREATE TABLE `users` (
  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  `occupation` VARCHAR(45),
  `address` VARCHAR(255),
  `country` VARCHAR(45),
  `username` VARCHAR(45) NOT NULL,
  `telefon` VARCHAR(15),
  `email` VARCHAR(80) NOT NULL,
  `password` VARCHAR(255) NOT NULL,
  `first_name` VARCHAR(45) NOT NULL,
  `last_name` VARCHAR(45) NOT NULL,
  `date_created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `confirmed` INT NOT NULL,
  `date_modified` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `gender` ENUM(`male`,`female`) NOT NULL,
  `userType` ENUM(`member`,`admin`) NOT NULL DEFAULT `member`,
  PRIMARY KEY (`id`),
  UNIQUE INDEX `username_UNIQUE` (`username` ASC),
  UNIQUE INDEX `email_UNIQUE` (`email` ASC),
  INDEX `login` (`email` ASC, `pass` ASC)
) ENGINE = InnoDB  DEFAULT CHARSET=utf8;

Результат:

SQL query:


CREATE TABLE `users` (
  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  `occupation` VARCHAR(45),
  `address` VARCHAR(255),
  `country` VARCHAR(45),
  `username` VARCHAR(45) NOT NULL,
  `telefon` VARCHAR(15),
  `email` VARCHAR(80) NOT NULL,
  `password` VARCHAR(255) NOT NULL,
  `first_name` VARCHAR(45) NOT NULL,
  `last_name` VARCHAR(45) NOT NULL,
  `date_created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `confirmed` INT NOT NULL,
  `date_modified` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `gender` ENUM(`male`,`female`) NOT NULL,
  `userType` ENUM(`member`,`admin`) NOT NULL DEFAULT `member`,
  PRIMARY KEY (`id`),
  UNIQUE INDEX `username_UNIQUE` (`username` ASC),
  UNIQUE INDEX `email_UNIQUE` (`email` ASC),
  INDEX `login` (`email` ASC, `pass` ASC)
) ENGINE = InnoDB  DEFAULT CHARSET=utf8
MySQL said: Documentation

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '`male`,`female`) NOT NULL,
  `userType` ENUM(`member`,`admin`) NOT NULL DEFAULT' at line 15

1 Ответ

0 голосов
/ 14 февраля 2019

Enum допускается в MariaDb.Наиболее вероятной причиной являются кавычки в значениях перечисления.Измените его на строку следующим образом:

`gender` ENUM('male','female') NOT NULL,
`userType` ENUM('member','admin') NOT NULL DEFAULT 'member',
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...