2016-10-05 3 views
1

Ich bin neu in MySQL, also verwende ich phpmyadmin, um Tabelle in der Datenbank zu erstellen. Ich habe Feld Hersteller von Enum-Typ mit möglichen Werten "Hersteller1", "Hersteller2", ...Warum erstellt phpmyadmin keine Werte für den Aufzählungstyp?

Ich wählte ENUM Typ und klickte auf "Edit ENUM/SET Werte" und ein Fenster Pop-up fragt nach gewünschten Werten. Ich bringe die Anweisungen, drücke "go" und "Manufacturer1", "Manufacturer2", "Manufacturer3", "Manufacturer4" ist nicht in Length/Values ​​geschrieben.

Wenn ich versuche, Tabelle zu erstellen, bekomme ich 1064 Syntaxfehler. Wenn ich auf "Vorschau SQL" klicken ich dieses:

CREATE TABLE `test4_db`.`product` (`product_id` INT(11) NOT NULL AUTO_INCREMENT , `image_url` VARCHAR(255) NOT NULL , `manufacturer` ENUM(0) NOT NULL DEFAULT 'Manufacturer1' , `health` ENUM(0) NOT NULL , `missing` INT(11) NOT NULL , `statuss` ENUM(0) NOT NULL DEFAULT 'available' , `owner_id` INT(11) NOT NULL , `holder_id` INT(11) NOT NULL , PRIMARY KEY (`puzzle_id`)) ENGINE = InnoDB CHARSET=utf8 COLLATE utf8_bin; 

Warum phpMyAdmin schreibt ENUM (0) anstelle von ENUM ('Hersteller1', 'Manufacturer2', 'Manufacturer3', 'Manufacturer4')?

+0

Versuchen Sie, phpmyadmin nicht zu verwenden, um Daten zu bearbeiten. Verwenden Sie lieber das SQL-Abfragefeld. Verwenden Sie die 'UPDATE'-Abfrage, um Felder in Ihrer Tabelle zu bearbeiten/zu aktualisieren, die das gewünschte Ergebnis liefern. –

+0

Alternativ können Sie 'tinyint (1)' i.p.o. 'enum' wenn du es auf deine Art machen willst – Franco

+0

Probiere dein phpMyAdmin in einem anderen Browser aus. Macht es einen Unterschied? – Alexxus

Antwort

3

Dies ist ein Fehler mit phpMyAdmin 4.6.4.

Sehen Sie diese - https://github.com/phpmyadmin/phpmyadmin/issues/12480

Dies wird in 4.6.5 festgelegt werden.

In der Zwischenzeit können Sie einfach "Vorschau SQL", kopieren Sie die SQL erstellt, und ersetzen Sie ENUM (0) mit den gewünschten Werten.

Alternativ können Sie eine frühere Version von phpMyAdmin verwenden.

+0

funktioniert die "Preview SQL" Abhilfe tatsächlich :) –

0

Verwenden Sie dies aber nicht zu Enum von health und statuss Spalte bearbeiten. Ich habe gerade zum Beispiel hinzugefügt.

CREATE TABLE `test4_db`.`puzzles` ( 
    `puzzle_id` INT(11) NOT NULL AUTO_INCREMENT , 
    `image_url` VARCHAR(255) NOT NULL , 
    `manufacturer` ENUM('Manufacturer1', 'Manufacturer2', 'Manufacturer3') NOT NULL DEFAULT 'Manufacturer1' , 
    `health` ENUM('y', 'n') NOT NULL , 
    `missing` INT(11) NOT NULL , 
    `statuss` ENUM('y', 'n') NOT NULL DEFAULT 'available' , 
    `owner_id` INT(11) NOT NULL , 
    `holder_id` INT(11) NOT NULL , 
PRIMARY KEY (`puzzle_id`)) 
ENGINE = InnoDB CHARSET=utf8 COLLATE utf8_bin; 

Es ist besser zu Abfrage statt UI zu verwenden, wie von @Abhrapratim Nag erwähnt

Verwandte Themen