Вопрос:
Я пытаюсь создать таблицу в phpMyAdmin, и я продолжаю получать ту же ошибку, независимо от того, как я манипулирую кодом SQL. Это предварительный SQL-запрос, который phpMyAdmin генерирует
CREATE TABLE `puppies`.`animals` ( `id` INT(11) NOT NULL AUTO_INCREMENT , `puppy_name` VARCHAR(256) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `breed_id` INT(11) NOT NULL , `description` VARCHAR(256) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `price` DECIMAL(10,2) NOT NULL , `picture_url` VARCHAR(256) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `sold` TINYINT(1) NOT NULL , PRIMARY KEY (`id`) ) ENGINE = InnoDB;
Я пробовал его с несколькими вариантами скобок и запятых.
Ответ №1
Тем, кто все еще испытывает это, и не хочет ждать, пока он будет беспорядочно работать снова:
Я только что столкнулся с этим и не могу найти никаких объяснений, кроме некоторых ошибок.
Я пробовал:
CREATE TABLE `database`.`measurement_types` ( `TypeID` INT(2) NOT NULL AUTO_INCREMENT , `Name` VARCHAR(32) NOT NULL , `Description` VARCHAR(256) NOT NULL , PRIMARY KEY (`TypeID`)) ENGINE = InnoDB;
Что вызвало ошибку “Пожалуйста, введите допустимую длину”
Пробовал несколько раз с разными значениями длины, но продолжал получать ту же ошибку.
– SOLUTION –
Итак, я только что создал таблицу с одним столбцом, а затем изменил ее с помощью двух других столбцов:
CREATE TABLE `database`.`measurement_types` ( `TypeID` INT(2) NOT NULL AUTO_INCREMENT , PRIMARY KEY (`TypeID`)) ENGINE = InnoDB;
И затем:
ALTER TABLE `measurement_types` ADD `Name` VARCHAR(32) NOT NULL AFTER `TypeID`, ADD `Description` VARCHAR(256) NOT NULL AFTER `Name`;
И это сработало.
Я также попытался удалить таблицу и создать ее с первым SQL снова, и на этот раз он сработал. Кажется довольно случайным
Ответ №2
Я также столкнулся с той же проблемой, и я нажал на Preview SQL, скопировал SQL-запрос и вставил его в SQL Run.
Ответ №3
Я решил свой “Пожалуйста, введите правильную длину”, введя значения длины для типов данных, которые не имели динамического распределения памяти. Поэтому им, очевидно, нужно было знать, сколько памяти они могли бы использовать для хранения. Или, конечно, действительная длина
Ответ №4
Вы также можете решить эту проблему, перезапустив MySQL… Это сработало для меня.
Ответ №5
Если вы используете Varchar вы должны Varchar длину. Иначе это не спасет.
Ответ №6
Мои студенты используют XAMPP; и около 25% класса испытали эту случайную ошибку. Все поля были правильными и имели значения длины. Было трудно найти какой-либо образец. Перезапуск MySQL работал для одного студента, но не для остальных. Попытка другого браузера работала для одного студента, но не для остальных. Перезапуск браузера работал для одного студента, но не для остальных. По сути, это кажется случайным – и любое “исправление” может быть просто “на этот раз сработало случайно”, независимо от каких-либо изменений в событиях.