2014-09-24 143 views
2

我想在phpmyadmin創建MySQL表

現有 database內創造 XAMPP SQL命令窗口 mysql表下面的代碼

CREATE TABLE hello_world (
    id text NOT NULL, 
    password text, 
    contact text, 
    email text, 
    friends text, 
    time datetime DEFAULT '0000-00-00 00:00:00' NOT NULL, 
    UNIQUE KEY id 
); 

但出現以下錯誤

你的SQL語法有錯誤;檢查對應於你的MySQL服務器版本使用附近的正確語法手冊「)」第9行

+2

text is unique? :O – 2014-09-24 08:07:28

+0

「時間」是MySQL的保留字,所以你必須用反引號包裝它 – bksi 2014-09-24 08:12:03

回答

3

有兩件事情,這裏要注意:

首先,你的唯一鍵的語法是錯誤的,該行應爲

UNIQUE KEY (`id`) 

其次,獨特的關鍵必須有一個固定的長度MySQL的,所以你需要指定id這樣

id varchar(10) NOT NULL, 

但是,你應該知道,使用文本作爲ID通常不是一個好的選擇。考慮使用一個整數,使其成爲一個PRIMARY KEY,而不是像在這個例子:

CREATE TABLE hello_world (
    id integer NOT NULL, 
    password text, 
    contact text, 
    email text, 
    friends text, 
    time datetime DEFAULT '0000-00-00 00:00:00' NOT NULL, 
    PRIMARY KEY (`id`) 
); 

這裏是一個sqlfiddle

+0

第三件事是「時間」是保留字MySQL,因爲它是數據類型 – bksi 2014-09-24 08:15:09

+0

@ bksi,這是真的,它不是很好的風格。但是,在這種情況下,MySQL足夠聰明地告訴它是一個列名。看小提琴。 – andy 2014-09-24 08:17:33

+0

首先,我需要一個表,我不想要額外的整數'id',因爲我使用'name'作爲'id',它不能是整數,而是'text'或'varchar'。我使用了前一半的代碼。謝謝大家。 – user3384985 2014-09-24 08:33:25

0

試試這個:

CREATE TABLE hello_world (
    id int NOT NULL, 
    password text, 
    contact text, 
    email text, 
    friends text, 
    time datetime DEFAULT '0000-00-00 00:00:00', 
    PRIMARY KEY (id) 
); 

你應該定義ID作爲主鍵。如果你需要一個字段來創建一個新的字段。但擁有主鍵更好。該鍵是自動的索引。

0

像這樣做,你不需要text數據類型設置爲各個領域,根據有更好的表現您的應用需求,使用適當的數據類型:

CREATE TABLE hello_world (
`id` int(10) NOT NULL, 
`password` varchar(255), 
`contact` text, 
`email` varchar(100), 
`friends` text, 
`_time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', 
UNIQUE KEY `id`(`id`) 
) 
1

我假設你知道你的」正在做關於你有一個文本ID,例如事實...

爲了使您的特定查詢工作,你需要將其更改爲

CREATE TABLE hello_world (
id text NOT NULL, 
     password text, 
     contact text, 
     email text, 
     friends text, 
time datetime DEFAULT '0000-00-00 00:00:00' NOT NULL, 
UNIQUE KEY (id (/*#size of the index#*/)) 
); 

這個那麼r聯合國並創建你的桌子。

+0

這個查詢將失敗 – bksi 2014-09-24 08:13:49

+0

它不會..我試過了;)...仍然是OP放置所有類型文本字段的事實沒有任何意義......但表格的名字是'hello world',所以他可能剛剛開始就被一團亂搞起來;)... – bfilipesoares 2014-09-24 08:17:36

+0

它適用於我 – user3384985 2014-09-24 08:37:20

0

嘗試用int代替整數,因爲這通常不支持在phpmyadmin中。

CREATE TABLE hello_world (
    id int NOT NULL, 
    password text, 
    contact text, 
    email text, 
    friends text, 
    time datetime DEFAULT '0000-00-00 00:00:00' NOT NULL, 
    UNIQUE KEY id 
);