3

当我尝试通过创建简单表时HeidiSQL出现这样的错误

在此处输入图像描述

CREATE TABLE `prg_config` (
    `id` INT NULL AUTO_INCREMENT,
    `name` VARCHAR(50) NULL DEFAULT '',
    `value` VARCHAR NULL DEFAULT ''
) COLLATE='utf8_bin';
4

3 回答 3

4

请检查以下查询:

CREATE TABLE prg_config (
     `id` INT NOT NULL AUTO_INCREMENT,
     `name` VARCHAR(50) NULL DEFAULT '',
     `value` VARCHAR(50) NULL DEFAULT '',
     PRIMARY KEY (id)
)COLLATE='utf8_bin';
于 2015-12-16T15:13:07.350 回答
0
CREATE TABLE `prg_config` (
        `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        `name` VARCHAR(50) NULL DEFAULT '',
        `value` VARCHAR(100) NULL DEFAULT ''
    ) COLLATE='utf8_bin';
  1. 添加PRIMARY KEY//到列UNIQUE_KEYAUTO_INCREMENT

  2. 为 指定长度VARCHAR

自动增量

每个表只能有一个 AUTO_INCREMENT 列。它必须定义为一个键(不一定是 PRIMARY KEY 或 UNIQUE 键)。如果 key 由多个列组成,则 AUTO_INCREMENT 列必须是第一个,除非存储引擎是 Aria 或 MyISAM。

SqlFiddleDemo

于 2015-12-16T14:54:42.660 回答
0

如果您使用 HeidiSQL 的表设计器创建了该表,我猜它看起来像这样:

在此处输入图像描述

当您将列的长度/设置为空时,HeidiSQL 不会抱怨VARCHAR。MySQL + MariaDB 都需要VARCHAR列的长度,所以我可以通过不让用户将VARCHAR长度设为空来解决这个问题。

于 2015-12-17T13:52:31.767 回答