Fehlercode 1064 bei MySQL mit phpmyadmin 4.9.1.

isidor2706

Grünschnabel
Wenn ich auf meinem localhost die folgende SQL-Anweisung ausführen lassen will, kommt die Fehlermeldung 1064:

Code:
CREATE TABLE IF NOT EXISTS `newsletter` /* localhost */
(
    `News_Id` int NOT NULL PRIMARY KEY AUTO_INCREMENT,
    `NewsName` varchar (80) NOT NULL,
    `NewsNameKrypto` varchar (160) NOT NULL,
    `NewsDatum` varchar (20),
    `NewsKategorie` int (11) UNSIGNED NOT NULL DEFAULT '0',    /* 0 = undefiniert (Fehler), 1 = Technik, 2 = Meditation, 3 = Beratung */
    `NewsBetreff` LONGBLOB NULL,                 /* max. 4 GB, Graphik zulässig */ 
    `NewsInhalt` LONGBLOB NULL,                 /* max. 4 GB, Graphik zulässig */ 
    `NewsAnhang` varchar (200) NULL,
    `NewsOffset` int (11) DEFAULT '0',
    `NewsEffektiv` int (11) DEFAULT '0',
    `NewsGesamt` int (11) DEFAULT '0',
    
    CONSTRAINT `NewsKontrolle1`
        UNIQUE (`NewsName`),
    CONSTRAINT `NewsKontrolle2`
        UNIQUE (`NewsNameKrypto`),
    CONSTRAINT `NewsKontrolle3`    
        KEY (`NewsKategorie`)                /* Prüfe schräge Anführungszeichen: `` */
);

Kann mit bitte jemand erklären, woran der Fehler liegt und wie es richtig heißen muß, das wäre super!
 
Zuletzt bearbeitet:
Lösung
Habe jetzt folgende Lösung gefunden:

Code:
CREATE TABLE IF NOT EXISTS `newsletter` /* localhost */
(
	`News_Id` int NOT NULL PRIMARY KEY AUTO_INCREMENT,
	`NewsName` varchar (80) NOT NULL,
	`NewsNameKrypto` varchar (160) NOT NULL,
	`NewsDatum` varchar (20),
	`NewsKategorie` int (11) UNSIGNED NOT NULL DEFAULT '0',	
	`NewsBetreff` LONGBLOB NULL, 				
	`NewsInhalt` LONGBLOB NULL, 				
	`NewsAnhang` varchar (200) NULL,
	`NewsOffset` int (11) DEFAULT '0',
	`NewsEffektiv` int (11) DEFAULT '0',
	`NewsGesamt` int (11) DEFAULT '0',
	
	CONSTRAINT `NewsKontrolle1`
		UNIQUE (`NewsName`),
	CONSTRAINT `NewsKontrolle2`
		UNIQUE (`NewsNameKrypto`)
);
ALTER TABLE `dbname`.`newsletter` ADD INDEX `NewsKontrolle3` (`NewsKategorie`) USING BTREE;
Bitte editiere deinen Beitrag und setze deinen Code in SQL-Codetags, siehe meine Signatur.

Es wäre hilfreich gewesen, wenn du direkt die ganze Fehlermeldung gepostet hättest. Laut Google ist Fehler 1064 wohl ein Syntaxfehler. Da hätte die Zeilenzahl durchaus geholfen.

Mittels SQL Syntax Check Online, SQL Validator, Instant SQL Compiler Online habe ich das jedoch schnell behoben bekommen. Das Tool sagt dir sogar die Zeilenzahl. Ich überlass es dir mal, das alleine hinzubekommen :) (Ein paar Korrekturen sind offensichtlich, die letzte nicht ganz: PRIMARY KEY statt KEY.)

Zusätzliche Frage: Was muß ich genau tun, um eine neuere Version von phpmyadmin zu installieren?
Wo möchtest du phpmyadmin installieren? Hast du einen eigenen Server? Hast du einen Hoster?
 
Bitte editiere deinen Beitrag und setze deinen Code in SQL-Codetags, siehe meine Signatur.

Es wäre hilfreich gewesen, wenn du direkt die ganze Fehlermeldung gepostet hättest. Laut Google ist Fehler 1064 wohl ein Syntaxfehler. Da hätte die Zeilenzahl durchaus geholfen.

Mittels SQL Syntax Check Online, SQL Validator, Instant SQL Compiler Online habe ich das jedoch schnell behoben bekommen. Das Tool sagt dir sogar die Zeilenzahl. Ich überlass es dir mal, das alleine hinzubekommen :) (Ein paar Korrekturen sind offensichtlich, die letzte nicht ganz: PRIMARY KEY statt KEY.)


Wo möchtest du phpmyadmin installieren? Hast du einen eigenen Server? Hast du einen Hoster?

Ich möchte die ältere Version von phpmyadmin auf meinem localhost updaten, möglichst ohne meine Datenbank neu installieren zu müssen, ist das möglich?
 
Ich möchte die ältere Version von phpmyadmin auf meinem localhost updaten, möglichst ohne meine Datenbank neu installieren zu müssen, ist das möglich?
Ja, weil phpmyadmin nichts mit dem DBMS an sich zu tun hat. Wenn es nur bei dir lokal ist, hast du ja alle rechte und kannst es "normal" installieren: phpMyAdmin, Installation — phpMyAdmin 5.1.0-dev documentation
(Bei einem Hoster wäre es ggf. sinnvoller, das den Hoster machen zu lassen!)
 
Wieso mehrere? Dein SQL-Query aus Beitrag #1 mit angepasster Syntax hat nur einen Primary Key.

Zitat von Dir:
(Ein paar Korrekturen sind offensichtlich, die letzte nicht ganz: PRIMARY KEY statt KEY.)

Mit deiner Empfehlung sind es genau zwei Primary Keys, was zu einem Fehler führt. Trotzdem vielen Dank für deine Mühe!
 
Habe jetzt folgende Lösung gefunden:

Code:
CREATE TABLE IF NOT EXISTS `newsletter` /* localhost */
(
	`News_Id` int NOT NULL PRIMARY KEY AUTO_INCREMENT,
	`NewsName` varchar (80) NOT NULL,
	`NewsNameKrypto` varchar (160) NOT NULL,
	`NewsDatum` varchar (20),
	`NewsKategorie` int (11) UNSIGNED NOT NULL DEFAULT '0',	
	`NewsBetreff` LONGBLOB NULL, 				
	`NewsInhalt` LONGBLOB NULL, 				
	`NewsAnhang` varchar (200) NULL,
	`NewsOffset` int (11) DEFAULT '0',
	`NewsEffektiv` int (11) DEFAULT '0',
	`NewsGesamt` int (11) DEFAULT '0',
	
	CONSTRAINT `NewsKontrolle1`
		UNIQUE (`NewsName`),
	CONSTRAINT `NewsKontrolle2`
		UNIQUE (`NewsNameKrypto`)
);
ALTER TABLE `dbname`.`newsletter` ADD INDEX `NewsKontrolle3` (`NewsKategorie`) USING BTREE;
 
Lösung
Zurück