phpMyAdmin - "请输入有效长度"

Nic*_*san 8 mysql phpmyadmin

我正在尝试在phpMyAdmin中创建一个表,无论我如何操作SQL代码,我都会遇到同样的错误.这是phpMyAdmin生成的预览SQL

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;
Run Code Online (Sandbox Code Playgroud)

我用括号和逗号的多种变体尝试了它.

小智 9

对于那些仍在经历这种情况的人,并且不想等待它再次随机工作:

我刚刚遇到这个,除了一些bug之外找不到任何解释.

我试过了:

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;
Run Code Online (Sandbox Code Playgroud)

其中产生了相同的"请输入有效长度"错误

尝试了几次不同的长度值,但不断得到相同的错误.

- 解 -

所以我首先用一个列创建了表,然后用另外两个列改变它,如下所示:

CREATE TABLE `database`.`measurement_types` ( 
    `TypeID` INT(2) NOT NULL AUTO_INCREMENT , 
    PRIMARY KEY (`TypeID`)) ENGINE = InnoDB;
Run Code Online (Sandbox Code Playgroud)

然后:

ALTER TABLE `measurement_types` 
    ADD `Name` VARCHAR(32) NOT NULL AFTER `TypeID`, 
    ADD `Description` VARCHAR(256) NOT NULL AFTER `Name`;
Run Code Online (Sandbox Code Playgroud)

这很有效.

我还试图删除该表并再次使用第一个SQL创建它,这次它起作用了.似乎很随机


小智 5

我也遇到了相同的问题,在预览SQL中单击了我所做的操作,然后复制sql查询并将其粘贴到SQL Run中


小智 5

我遇到了同样的问题,似乎是 VARCHAR 字段的错误。我的解决方案是将这些字段设为 INT,创建表,然后将它们改回 VARCHAR