Я новичок в 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
;
Я не могу создать новую таблицу в базе данных.
Пробелы не допускаются в конце определения столбца, должны быть:
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
,
Это немного странно. У вас есть пробелы в конце имен (для 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
,