Не могу создать таблицу. Не могу найти причину
Что не так с этим SQL? Почему я не могу запустить это?
CREATE TABLE `test` (
`format_id` VARCHAR NOT NULL ,
bef_aft_flag TINYINT NOT NULL ,
"order"INT NOT NULL ,
`format_name` VARCHAR( 0 ) NOT NULL ,
`file_path` VARCHAR( 0 ) NOT NULL ,
`create_date` TIMESTAMP NOT NULL ,
`update_dat` TIMESTAMP NOT NULL ,
PRIMARY KEY ( `format_id` )
);
#1064 - 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 'NOT NULL , bef_aft_flag TINYINT NOT NULL , "order"INT NOT NULL , `format_name` ' at line 3
4 ответа
VARCHAR
Требуется длина поля в скобках. Ты нуждаешься в этом,
`format_id` VARCHAR(10) NOT NULL,
Но это может быть неправильно, просто продолжайте читать. В вашем коде много проблем.
Из его названия
format_id
Кажется, INT не последовательность символов. Ты имел ввидуformat_id INT NOT NULL,
двойная кавычка в
"order"
не поддерживается в MySQL использовать backtick`order` INT NOT NULL,
0
длинаVARCHAR
наformat_name
а такжеfile_path
не имеет смысла. Ты имел ввиду?`format_name` VARCHAR( 40 ) NOT NULL, `file_path` VARCHAR( 40 ) NOT NULL,
Вы пропустили
e
наupdate_dat
поле. Кажется, ты не пропустил этоcreate_date
совсем.`update_date` TIMESTAMP NOT NULL,
Вы можете использовать как это
CREATE TABLE `test` (
`format_id` VARCHAR(255) NOT NULL ,
`bef_aft_flag` TINYINT(3) NOT NULL ,
`order` INT(11) NOT NULL ,
`format_name` VARCHAR(255) NOT NULL ,
`file_path` VARCHAR(255) NOT NULL ,
`create_date` TIMESTAMP NOT NULL ,
`update_dat` TIMESTAMP NOT NULL ,
PRIMARY KEY ( `format_id` )
);
"order"INT NOT NULL ,
Вы не можете использовать кавычки в качестве идентификаторов полей в MySQL. Используйте backticks:
`order` INT NOT NULL,
обратите внимание, однако, что order
это зарезервированное слово в MySQL. Вы сможете создать поле, но вам придется все время оборачивать термин в кавычки.
CREATE TABLE `test` (
`format_id` VARCHAR(20) NOT NULL ,
bef_aft_flag TINYINT NOT NULL ,
`order` INT NOT NULL ,
`format_name` VARCHAR(0) NOT NULL ,
`file_path` VARCHAR(0) NOT NULL ,
`create_date` TIMESTAMP NOT NULL ,
`update_dat` TIMESTAMP NOT NULL ,
PRIMARY KEY ( `format_id` )
);