2012-07-02 30 views
-1

我正在使用Mysql-query-browser(mysql.com的mysql gui)創建一個表。執行SQL命令創建表時出錯

CREATE TABLE `mydb`.`mytable` (
`client` INT(11) UNSIGNED NOT NULL, 
`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, 
`title` VARCHAR NOT NULL, 
`description` VARCHAR NOT NULL, 
`url` VARCHAR NOT NULL, 
`keywords` TEXT NOT NULL, 
PRIMARY KEY(`id`) 
) 
ENGINE = MYISAM; 

但我不斷收到以下錯誤信息:

Error executing SQL commands to create table. 

    MySQL Error Nr. 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 
'NOT NULL,`description` VARCHAR NOT NULL,`url` VARCHAR NOT NULL,`keywo' at line 4 

如果任何一個知道如何解決它? 請幫幫我。 感謝

回答

2

如果定義爲varchar必須添加的最大長度爲進入該列(見MySQL docu)列。所以,在你的例子可能會導致以下是:

CREATE TABLE `mydb`.`mytable` (
`client` INT(11) UNSIGNED NOT NULL, 
`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, 
`title` VARCHAR(50) NOT NULL, 
`description` VARCHAR(100) NOT NULL, 
`url` VARCHAR(100) NOT NULL, 
`keywords` TEXT NOT NULL, 
PRIMARY KEY(`id`) 
) 
ENGINE = MYISAM; 

請注意,你必須添加這個在您的聲明中三個出現varchar

+1

當我設置它會給錯誤這樣的錯誤執行SQL命令的價值創建表。 MySQL錯誤號碼。 1064 您的SQL語法有錯誤;檢查與您的MySQL服務器版本相對應的手冊,以便在'NOT NULL AUTO_INCREMENT'附近使用正確的語法, 'name' varchar DEFAULT 15, 'varchar DEFAU'at line 2 –

+1

@abhishek它對我來說很好,請參閱,例如,在這裏[sqlfiddle](http://sqlfiddle.com/#!2/fdb85/1/0)。此外,錯誤中的列名指向與您的示例中不同的表,因此沒有「名稱」或「狀態」。 – Sirko

0

必須爲VARCHAR類型

CREATE TABLE `test_model`.`mytable` (
    `client` INT(11) UNSIGNED NOT NULL, 
    `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, 
    `title` VARCHAR(50) NOT NULL, 
    `description` VARCHAR(50) NOT NULL, 
    `url` VARCHAR(50) NOT NULL, 
    `keywords` TEXT NOT NULL, 
    PRIMARY KEY(`id`) 
    ) 
    ENGINE = MYISAM; 
0

指定VARCHAR的大小應該做的伎倆指定長度:

CREATE TABLE `mydb`.`mytable` (
`client` INT(11) UNSIGNED NOT NULL, 
`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, 
`title` VARCHAR(20) NOT NULL, 
`description` VARCHAR(20) NOT NULL, 
`url` VARCHAR(20) NOT NULL, 
`keywords` TEXT NOT NULL, 
PRIMARY KEY(`id`) 
) 
ENGINE = MYISAM;