2015-12-16 8 views
3

Когда я пытаюсь создать простую таблицу с помощью HeidiSQL я получаю сообщение об ошибке, как этотКак создать таблицу в MariaDB?

enter image description here

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

указать длину для 'varchar' для столбца' значение' –

+0

Кроме того, 'PRIMARY KEY' не должен быть' NOT NULL'. (Внесите изменения в строку 'id'. –

+0

Вне темы: вместо того, чтобы сделать снимок экрана диалогового окна сообщения, вы можете нажать Ctrl + C, чтобы скопировать текстовое содержимое этого окна в буфер обмена. – Anse

ответ

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/KEY в AUTO_INCREMENT колонке

  2. Укажите длину для VARCHAR.

AUTO_INCREMENT:

Каждая таблица может иметь только один столбец AUTO_INCREMENT. Он должен быть определен как ключ (необязательно ключ PRIMARY KEY или UNIQUE). Если ключ состоит из нескольких столбцов, столбец AUTO_INCREMENT должен быть первым , если движок хранения не является Aria или MyISAM.

SqlFiddleDemo

2

Пожалуйста Проверьте следующий запрос:

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'; 
0

Если вы создали эту таблицу с таблицей конструктора HeidiSQL, я предполагаю, что это выглядело так:

enter image description here

HeidiSQL не жалуется, когда вы делаете длину/значение пустым для столбца VARCHAR. MySQL + MariaDB оба требуют длины для столбцов VARCHAR, поэтому я, вероятно, исправлю это, не давая пользователю сделать длину VARCHAR пустой.

+2

Я исправил это в [ r5032 из HeidiSQL] (http://www.heidisql.com/download.php#r5032), так что вы получите сообщение об ошибке, в котором _Column data type% s требует длину/set_, когда вы пытаетесь оставить пустую длину/установить значение для столбца VARCHAR. – Anse