Ошибка синтаксиса SQL-запроса при создании таблицы
Я получаю ошибку синтаксиса SQL-запроса при создании таблицы. Вот SQL-запрос:
CREATE TABLE ACCOUNT (
ACCNO NUMBER(5) NOT NULL,
NAME VARCHAR(20) NOT NULL,
BA L NUMBER(8,2) NOT NULL,
CREATION-DT DATE NOT NULL,
PRIMARY KEY ( ACCNO )
);
Вот ошибка:
У вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы узнать правильный синтаксис для использования рядом с 'NUMBER(5) NOT NULL.
Что не так с моим синтаксисом?
2 ответа
Используя SQLfiddle, вы можете видеть, что это недопустимо.
У вас есть несколько проблем с вашим синтаксисом; недопустимые типы данных, недопустимые имена столбцов и т. д. Вы можете инкапсулировать недопустимые имена в backticks, но тогда вам придется помнить, чтобы инкапсулировать их позже.
Вместо Number
ты наверное имел ввиду numeric
но я бы предложил попробовать Integer
вместо.
Или просто попробуйте это:
CREATE TABLE ACCOUNT (
ACCNO INTEGER(5) NOT NULL,
NAME VARCHAR(20) NOT NULL,
BAL INTEGER(8) NOT NULL,
CREATIONDT DATE NOT NULL,
PRIMARY KEY ( ACCNO )
);
NUMBER
не является допустимым типом данных в MySQL, вы должны выбрать тот из списка (возможно, вы имели в видуNUMERIC
).
Вы также должны экранировать некоторые идентификаторы (в вашем случае имена столбцов BA L
, который включает в себя пространство внутри него, и CREATION-DT
, который включает в себя тире) с кавычками `
в MySQL:
CREATE TABLE `ACCOUNT` (
`ACCNO` NUMERIC(5) NOT NULL,
`NAME` VARCHAR(20) NOT NULL,
`BA L` NUMERIC(8,2) NOT NULL,
`CREATION-DT` DATE NOT NULL,
PRIMARY KEY ( `ACCNO` )
);