2012-09-14 27 views
29

Hier ist mein Fehler (wenn Sie mehr Informationen fragen Sie benötigen) - Fehler SQL-Abfrage:1064 Fehler in 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 sagte:

1064 - Sie haben einen Fehler in Ihrer SQL-Syntax; Sie in die Bedienungsanleitung zu Ihrer MySQL-Server-Version für die richtige Syntax entspricht, wie in Zeile in der Nähe von 'TYPE = MyISAM' verwenden 6

+0

der Schlüssel (id) ist auch redundant. es wird bereits wegen des Primärschlüssels indexiert – Bill

Antwort

63

unter CREATE TABLE Syntax dokumentiert:

Hinweis
Die ältere TYPE Option war auch mit ENGINE. TYPE wurde in MySQL 4.0 veraltet und in MySQL 5.5 entfernt. Bei einem Upgrade auf MySQL 5.5 oder höher müssen Sie vorhandene Anwendungen, die auf TYPE angewiesen sind, so konvertieren, dass sie stattdessen ENGINE verwenden.

Daher Sie wollen:

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

Ja, das ist es. Typ war früher ein Synonym von ENGINE, war aber in 4.0 veraltet und wurde in 5.5 entfernt. –

+0

Vielen Dank für Ihre Hilfe :) aber ich denke, die ganze MySQL-Datenbank, wie das ist :( –

+1

@eggyal # 1060 - Doppelte Spaltenname ‚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

Ist das eine Antwort auf die Frage des Name der Tabelle in der Frage ist 'dave_bannedwords', nicht' 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 sagte: Dokumentation # 1064 - Sie haben einen Fehler in Ihrer SQL-Syntax ; das Handbuch, die für die richtige Syntax verwendet in der Nähe von 'TYPE = MyISAM' in Zeile 36


Welche Korrektur unten an Ihre MySQL-Server-Version entspricht:

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

Ist das eine Antwort auf die Frage? Der Name der Tabelle in der Frage ist 'dave_bannedwords', nicht' users_online'. – Pang

-2

Versuchen Sie, die folgende Abfrage

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

Sie müssen klarer sein –

+2

Ist dies eine Antwort auf die Frage? Der Name der Tabelle in der Frage ist 'dave_bannedwords', nicht' card_types'. – Pang