#mysql
Вопрос:
Я пытаюсь создать таблицу, чтобы я мог передать файл csv, чтобы загрузить его в таблицу, но я получаю эту ошибку, и я не уверен, почему. Вот что у меня есть:
CREATE TABLE imdb(
-> rank int auto_increment PRIMARY key,
-> title varchar(255),
-> genre varchar(255),
-> director varchar(255),
-> actors varchar(255),
-> year int,
-> rating decimal(1,1),
-> votes int,
-> metascore int
-> );
Вот в чем ошибка:
ERROR 1064 (42000): 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 'rank int
первичный ключ auto_increment,
заголовок varchar(255),
жанр varchar(255),
реж. в строке 2
Комментарии:
1. Это стрелки
->
в самом сценарии или из того места, откуда он был скопирован? Их там не должно быть.2. Также
rank
это зарезервированное слово, вы можете добавить обратные ссылки, чтобы разрешить имя, если хотите
Ответ №1:
Этих стрелок там быть не должно (может быть, что-то добавилось при копировании/вставке?). Кроме того, rank
и year
зарезервированы слова (спасибо @ Aloiso Gomes), поэтому вам нужно добавить обратные ссылки, чтобы разрешить имя в любое время, когда вы ссылаетесь на него (сохраненные процедуры, выбор, вставки и т.д.)
Это работает:
CREATE TABLE imdb(
`rank` int auto_increment PRIMARY key,
`title` varchar(255),
`genre` varchar(255),
`director` varchar(255),
`actors` varchar(255),
`year` int,
`rating` decimal(1,1),
`votes` int,
`metascore` int
);
INSERT INTO imdb (title,genre) VALUES
('Fast Furious 1', 'racing'),
('Fast Furious 2', 'racing'),
('Fast Furious 3', 'racing?'),
('Fast Furious 4', '"racing"');
SELECT `rank`, title, genre FROM imdb;
Комментарии:
1. Год — это тоже зарезервированное слово. Задние палочки-это хорошо 😀