Ошибка SQL (1166): неверное имя столбца ‘id’

Я новичок в yii и heidiSQL, при создании новой таблицы я получаю эту ошибку, поэтому помогите мне решить эту ошибку

CREATE TABLE `users` (
`id ` INT(45) NULL,
`username ` VARCHAR(50) NULL,
`pwd_hash` VARCHAR(50) NULL,
`fname` VARCHAR(50) NULL,
`lname` VARCHAR(50) NULL,
`email` VARCHAR(50) NULL,
`country` VARCHAR(50) NULL,
`address` VARCHAR(50) NULL,
`gender` VARCHAR(50) NULL,
INDEX `PRIMARY KEY` (`id `),
INDEX `UIQUE KEY` (`username `)
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
;

Я не могу создать новую таблицу в базе данных.

-2

Решение

Пробелы не допускаются в конце определения столбца, должны быть:

CREATE TABLE `users` (
`id` INT(45) NULL,
`username` VARCHAR(50) NULL,
`pwd_hash` VARCHAR(50) NULL,
`fname` VARCHAR(50) NULL,
`lname` VARCHAR(50) NULL,
`email` VARCHAR(50) NULL,
`country` VARCHAR(50) NULL,
`address` VARCHAR(50) NULL,
`gender` VARCHAR(50) NULL,
INDEX `PRIMARY KEY` (`id`),
INDEX `UNIQUE KEY` (`username`)
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB

У вас есть та же ошибка для username,

2

Другие решения

Это немного странно. У вас есть пробелы в конце имен (для id а также username). Это, кажется, вызывает проблему, даже если экранированные имена используются последовательно (это задокументировано в MySQL). документация). Это работает:

CREATE TABLE `users` (
`id` INT(45) NULL,
`username` VARCHAR(50) NULL,
`pwd_hash` VARCHAR(50) NULL,
`fname` VARCHAR(50) NULL,
`lname` VARCHAR(50) NULL,
`email` VARCHAR(50) NULL,
`country` VARCHAR(50) NULL,
`address` VARCHAR(50) NULL,
`gender` VARCHAR(50) NULL,
INDEX `PRIMARY KEY` (`id`),
INDEX `UIQUE KEY` (`username`)
);

Я ожидаю, что сбежавшие персонажи будут работать. Однако пробелы в конце имен — плохая идея, поэтому удалите их. Вот это скрипка SQL

Я также ожидаю, что вы намерены это:

CREATE TABLE `users` (
`id` INT NOT NULL,
`username` VARCHAR(50) NULL,
`pwd_hash` VARCHAR(50) NULL,
`fname` VARCHAR(50) NULL,
`lname` VARCHAR(50) NULL,
`email` VARCHAR(50) NULL,
`country` VARCHAR(50) NULL,
`address` VARCHAR(50) NULL,
`gender` VARCHAR(50) NULL,
PRIMARY KEY (`id`),
UNIQUE (`username`)
);

Исходное определение таблицы создало два индекса с именами «PRIMARY KEY» и «UIQUE». Он не объявлял первичный ключ или уникальное ограничение.

Там нет необходимости иметь номер как 45 после int,

1

По вопросам рекламы [email protected]