Ошибка 1064 в коде SQL - PullRequest
       19

Ошибка 1064 в коде SQL

1 голос
/ 21 декабря 2011

Я использовал форму phpMyAdmin для создания таблицы, то есть я заполнил поля и сгенерировал код.Сгенерированный код не работает, но я не могу найти ошибку.Любая помощь будет оценена.

#1064 - 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 '( 1 ) NOT NULL DEFAULT  '0',

userEmail VARCHAR (255) NOT NULL, ПЕРВИЧНЫЙ КЛЮЧ (в строке 14

Вот код:

CREATE TABLE members (
userID INT( 9 ) NOT NULL AUTO_INCREMENT ,
userName VARCHAR( 15 ) NOT NULL ,
userPwd VARCHAR( 16 ) NOT NULL ,
userTitle VARCHAR( 4 ) NOT NULL ,
fName VARCHAR( 30 ) NOT NULL ,
lName VARCHAR( 30 ) NOT NULL ,
address VARCHAR( 255 ) NULL ,
dateOfBirth VARCHAR( 10 ) NULL ,
userJob VARCHAR( 15 ) NULL ,
regDate VARCHAR( 20 ) NOT NULL ,
accType CHAR( 1 ) NOT NULL DEFAULT  'F',
regCode VARCHAR( 255 ) NOT NULL ,
isActivated BOOL( 1 ) NOT NULL DEFAULT  '0',
userEmail VARCHAR( 255 ) NOT NULL ,
PRIMARY KEY (  userID ) ,
UNIQUE (userName ,userEmail)
) ENGINE = MYISAM

mysql ver 5.1 php ver 5.2.*

Ответы [ 2 ]

3 голосов
/ 21 декабря 2011

Вы не можете использовать BOOL (1)
Попробуйте следующее (я только что заменил BOOL (1) на BOOL)
BOOL и BOOLEAN - синонимы для TINYINT (1).

CREATE TABLE members (
userID INT( 9 ) NOT NULL AUTO_INCREMENT ,
userName VARCHAR( 15 ) NOT NULL ,
userPwd VARCHAR( 16 ) NOT NULL ,
userTitle VARCHAR( 4 ) NOT NULL ,
fName VARCHAR( 30 ) NOT NULL ,
lName VARCHAR( 30 ) NOT NULL ,
address VARCHAR( 255 ) NULL ,
dateOfBirth VARCHAR( 10 ) NULL ,
userJob VARCHAR( 15 ) NULL ,
regDate VARCHAR( 20 ) NOT NULL ,
accType CHAR( 1 ) NOT NULL DEFAULT  'F',
regCode VARCHAR( 255 ) NOT NULL ,
isActivated BOOL NOT NULL DEFAULT  '0',
userEmail VARCHAR( 255 ) NOT NULL ,
PRIMARY KEY (  userID ) ,
UNIQUE (userName ,userEmail)
) ENGINE = MYISAM
2 голосов
/ 21 декабря 2011

Изменение isActivated BOOL( 1 ) NOT NULL DEFAULT '0',

до

isActivated BOOL NOT NULL DEFAULT '0',

Вы можете прочитать об этом подробнее: здесь

M указывает максимальную ширину дисплея для целочисленных типов

У Bool этого нет, поэтому вы не можете указать ширину. это всегда 1

...