2012-09-14 65 views
29

這是我的錯誤(如果你需要任何更多的信息只是要求) - 錯誤 SQL查詢:1064錯誤在CREATE TABLE ... TYPE = MYISAM

CREATE TABLE dave_bannedwords(

id INT(11) NOT NULL AUTO_INCREMENT , 
word VARCHAR(60) NOT NULL DEFAULT '', 
PRIMARY KEY (id) , 
KEY id(id) 
) TYPE = MYISAM ; 

MySQL表示:

1064 - 您的SQL語法錯誤;檢查對應於你的MySQL服務器版本正確的語法使用 附近「TYPE = MyISAM的」第6行

+0

密鑰(id)也是多餘的。它已經被索引,因爲主鍵 – Bill

回答

63

由於CREATE TABLE Syntax下記錄的手冊:

注意
TYPE選項與ENGINE同義。 TYPE已在MySQL 4.0中被棄用,並在MySQL 5.5中被刪除。 升級到MySQL 5.5或更高版本時,必須轉換依賴於TYPE的現有應用程序才能使用ENGINE

因此,你想:

CREATE TABLE dave_bannedwords(
    id INT(11)  NOT NULL AUTO_INCREMENT, 
    word VARCHAR(60) NOT NULL DEFAULT '', 
    PRIMARY KEY (id), 
    KEY id(id) -- this is superfluous in the presence of your PK, ergo unnecessary 
) ENGINE = MyISAM ; 
+0

是的,就是這樣。類型曾經是ENGINE的同義詞,但它在4.0中被棄用,並在5.5中被刪除。 –

+0

感謝您的所有幫助:)但我認爲整個MySQL數據庫是這樣的:( –

+1

@eggyal #1060 - 重複列名'id' –

-2
CREATE TABLE `admnih` (
    `id` int(255) NOT NULL auto_increment, 
    `asim` varchar(255) NOT NULL default '', 
    `brid` varchar(255) NOT NULL default '', 
    `rwtbah` int(1) NOT NULL default '0', 
    `esmmwkeh` varchar(255) NOT NULL default '', 
    `mrwr` varchar(255) NOT NULL default '', 
    `tid` int(255) NOT NULL default '0', 
    `alksmfialdlil` int(255) NOT NULL default '0', 
    `tariktsjil` varchar(255) NOT NULL default '', 
    `aimwke` varchar(255) NOT NULL default '', 
    `twkie` text NOT NULL, 
    `rwtbahkasah` int(255) NOT NULL default '0', 
    PRIMARY KEY (`id`) 
) TYPE=MyISAM AUTO_INCREMENT=2 ; 
+2

這是問題的答案?問題中表格的名稱是'dave_bannedwords',而不是'admnih'。 – Pang

-2
SELECT Email, COUNT(*) 
FROM user_log  
WHILE Email IS NOT NULL  
GROUP BY Email  
HAVING COUNT(*) > 1  
ORDER BY UpdateDate DESC 

MySQL表示:#文檔1064 - 你在你的SQL語法 有一個錯誤;檢查對應於你的MySQL服務器版本 在線路附近使用「TYPE = MyISAM的」正確的語法手冊36


其中修正如下:

CREATE TABLE users_online (
    ip varchar(15) NOT NULL default '', 
    time int(11) default NULL, 
    PRIMARY KEY (ip), 
    UNIQUE KEY id (ip), 
    KEY id_2 (ip) 
    TYPE=MyISAM; 
) 
#       
# Data untuk tabel `users_online` 
# 

INSERT INTO users_online VALUES ('127.0.0.1', 1158666872); 
+2

這是問題的答案嗎?問題中表格的名稱是'dave_bannedwords',而不是'users_online'。 – Pang

-2

嘗試下面的查詢

CREATE TABLE card_types (
    card_type_id int(11) NOT NULL auto_increment, 
    name varchar(50) NOT NULL default '', 
    PRIMARY KEY (card_type_id), 
) ENGINE = MyISAM ; 
+0

您必須更清楚 –

+2

這是問題的答案嗎?問題中表格的名稱是'dave_bannedwords',而不是'card_types'。 – Pang