Ошибка синтаксиса SQL - PullRequest
       4

Ошибка синтаксиса SQL

1 голос
/ 27 февраля 2012
CREATE TABLE  `users` (

 `id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
 `type` ENUM(  `member` ,  `admin` ) NOT NULL ,
 `username` VARCHAR( 30 ) NOT NULL ,
 `email` VARCHAR( 80 ) NOT NULL ,
 `pass` VARBINARY( 32 ) NOT NULL , 
 `first_name` VARCHAR( 20 ) NOT NULL , 
 `last_name` VARCHAR( 40 ) NOT NULL , 
 `date_expires` DATE NOT NULL , 
 `date_created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
 `date_modified` TIMESTAMP NOT NULL DEFAULT `0000-00-00 00:00:00` ,
PRIMARY KEY (  `id` ) , 
UNIQUE KEY  `username` (  `username` ) ,
UNIQUE KEY  `email` (  `email` ) 
) ENGINE = MYISAM DEFAULT CHARSET = utf8; 

MySQL сказал:

# 1064 - у вас ошибка в синтаксисе SQL;проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса, который можно использовать рядом с 'member, admin) NOT NULL, username VARCHAR (30) NOT NULL, email VARCHAR (80)' в строке 3

Используемый мной общий сервер использует 4.4.Спасибо за прочтение.Я абсолютный новичок, изучая php / mysql только один месяц, поэтому, пожалуйста, говорите с точки зрения непрофессионала.

Ответы [ 3 ]

5 голосов
/ 27 февраля 2012

Вам нужно указать значения ENUM

type ENUM( 'member' , 'admin' ) NOT NULL ,

не стоит помечать их, как сейчас

То же самое для этой строки

`date_modified` TIMESTAMP NOT NULL DEFAULT `0000-00-00 00:00:00`

должно быть

`date_modified` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00'
1 голос
/ 27 февраля 2012

Эта страница указывает, что ваши значения ENUM должны быть строками, поэтому должны быть заключены в одинарные кавычки.

0 голосов
/ 14 апреля 2013

Окей исправил это вот оно:)

CREATE TABLE `users` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
type ENUM( 'member' , 'admin' ) NOT NULL ,
`username` varchar(30) NOT NULL default '',
`password` varchar(255) NOT NULL default '',
`first_name` varchar (15) NOT NULL,
`last_name` varchar (30) NOT NULL,
`gender` ENUM('male',  'female') NOT NULL default 'male',
`email` varchar(50) NOT NULL default '',
`skype` varchar(50) NOT NULL default 'Not Specified',
`facebook` varchar(150) NOT NULL default 'Not Specified',
`location` varchar(100) NOT NULL default 'Not Specified',
PRIMARY KEY (`id`),
UNIQUE KEY (`email`),
KEY (`email`, `password`)
) ENGINE = MYISAM DEFAULT CHARSET = utf8;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...