2016-03-15 3 views
0

Я получаю синтаксическую ошибку 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) 
); 

Здесь ошибка:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NUMBER(5) NOT NULL.

Что случилось с моим синтаксисом?

+2

'Number' тип поля не существует в сервере SQL, вероятно, вы имеете в виду' numeric' – esiprogrammer

+2

это также имеет место в MySQL – Breeze

+0

Вы COBOL программист? Я думаю, что он использовал 'number' для операторов изображения. – wallyk

ответ

0

Используя SQLfiddle, вы можете видеть это недопустимым.

У вас есть несколько проблем с вашим синтаксисом; invalid data types, invalid column names и т. Д. Вы можете инкапсулировать недопустимые имена в обратные ссылки, но тогда вам придется не забудьте их инкапсулировать позже.

Вместо 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) 
); 
0

NUMBER не является допустимым типом данных в MySQL, вы должны выбрать один из list (может быть, вы означало 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`) 
); 

SQLFiddle

Смежные вопросы