phpMyAdmin - “请输入有效长度”

时间:2016-11-20 19:18:45

标签: 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;

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

11 个答案:

答案 0 :(得分: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;

哪个产生相同"请输入有效长度"错误

尝试了几次不同的长度值,但仍然遇到同样的错误。

- 解 -

所以我先创建一个包含一列的表,然后用另外两列修改它,如下所示:

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创建它,这次它起作用了。似乎很随意

答案 1 :(得分:2)

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

答案 2 :(得分:1)

我也遇到了同样的问题,我点击了预览SQL 并复制了该SQL查询并将其粘贴到SQL Run中

答案 3 :(得分:0)

我通过输入不是动态内存分配类型的数据类型的长度值来解决“请输入有效长度”的问题。因此,他们显然需要知道可以为存储使用多少内存。或者一定是有效长度

答案 4 :(得分:0)

您也可以通过重新启动mysql来解决它。它对我有用。

答案 5 :(得分:0)

如果使用Varchar,则必须指定长度。否则,它将无法保存。

答案 6 :(得分:0)

我的学生正在使用XAMPP;并且大约25%的班级经历了这种随机错误。所有字段都是正确的,并且具有长度值。很难找到任何模式。重新启动MySQL仅对一名学生有效,而对其余学生则无效。尝试使用另一种浏览器仅对一个学生有效,而对其他学生则无效。重新启动浏览器仅对一名学生有效,而对其余学生无效。基本上,这似乎是随机的,并且任何“修复”都可以是“这次随机起作用”,而与事件的任何变化无关。

答案 7 :(得分:0)

这是varchar的错误。如果您将排序规则更改为utf8mb4_general_ci,它将解决此问题

enter image description here

答案 8 :(得分:0)

PhpMyAdmin 似乎存在一些问题。 如果列类型为 varchar,则需要“排序规则”值。如果 varchar 的 Collat​​ion 字段为空,您将遇到错误“请输入有效长度”。所以基本上'Size'和'Collat​​ion'这两个字段都是必填的,不能为空。

请将 Collat​​ion 字段设置为诸如“utf8mb4_general_ci”之类的值以解决问题。

答案 9 :(得分:0)

我解决了“请输入有效长度”的问题,方法是分别添加一列并为所有列指定长度,因为数据库需要知道它将消耗多少内存。

答案 10 :(得分:-1)

我的解决方案是为每个 varchar 类型设置一个值。