Ошибка: неверный синтаксис в инструкции INSERT INTO (используется postgresql и django) - PullRequest
1 голос
/ 29 апреля 2020

Я пытаюсь создать базу данных для игры в стиле «под угрозой». Я сделал модель своего приложения и перенес ее в django, и сейчас пытаюсь заполнить базу данных с помощью программы python. Тем не менее, я получаю сообщение об ошибке в операторе INSERT INTO, карат указывает на «O» в. Также странно то, что если я скопирую и вставлю вставку в оператор и первый оператор данных и вставлю их, пока я нахожусь в оболочке базы данных, вставка работает без проблем. Может кто-нибудь сказать мне, в чем может быть проблема здесь?

Редактировать: я пытаюсь сделать это только с файлом python, потому что когда я запускаю вопрос 1. sql (подробно ниже), я получил та же ошибка, поэтому я подумал, что это может быть проблемой. Мне удалось выполнить вопросы 1.. sql и заполнить пустую базу данных, не созданную, с помощью django.

[Успешная вставка в оболочку базы данных]:

jeopardy=# INSERT INTO game_clues (episode, airdate, round, category, worth, clue, answer) VALUES
jeopardy-# ('4680','2004-12-31','Jeopardy!','HISTORY','$200','For the last 8 years of his life\, Galileo was under house arrest for espousing this man''s theory','Copernicus');
INSERT 0 1
jeopardy=# delete from game_clues where episode = '4680';
DELETE 1
jeopardy=# exit
postgres@ip-172-26-0-21:~$ exit
logout

[Сообщение об ошибке]:

ubuntu@ip-172-26-0-21:~/Jeopardy$ python3 questions1.py
  File "questions1.py", line 9
    insert_query = INSERT INTO game_clues (episode, airdate, round, category, worth, clue, answer) VALUES
                             ^
SyntaxError: invalid syntax

[Мой python файл] (первые несколько строк данных, есть еще много):

import psycopg2
connection = psycopg2.connect(user = "postgres",
                                  password = "Jasper",
                                  host = "localhost",
                                  port = "5432",
                                  database = "jeopardy")
cur = connection.cursor()

insert_query = INSERT INTO game_clues (episode, airdate, round, category, worth, clue, answer) VALUES
('4680','2004-12-31','Jeopardy!','HISTORY','$200','For the last 8 years of his life\, Galileo was under house arrest for espousing this man''s theory','Copernicus'),
('4680','2004-12-31','Jeopardy!','ESPN''s TOP 10 ALL-TIME ATHLETES','$200','No. 2: 1912 Olympian; football star at Carlisle Indian School; 6 MLB seasons with the Reds\, Giants & Braves','Jim Thorpe'),
('4680','2004-12-31','Jeopardy!','EVERYBODY TALKS ABOUT IT...','$200','The city of Yuma in this state has a record average of 4\,055 hours of sunshine each year','Arizona'),

SQL файл при запуске с python3:

INSERT INTO game_clues (episode, airdate, round, category, worth, clue, answer) VALUES
('4680','2004-12-31','Jeopardy!','HISTORY','$200','For the last 8 years of his life\, Galileo was under house arrest for espousing this man''s theory','Copernicus'),
('4680','2004-12-31','Jeopardy!','ESPN''s TOP 10 ALL-TIME ATHLETES','$200','No. 2: 1912 Olympian; football star at Carlisle Indian School; 6 MLB seasons with the Reds\, Giants & Braves','Jim Thorpe'),
('4680','2004-12-31','Jeopardy!','EVERYBODY TALKS ABOUT IT...','$200','The city of Yuma in this state has a record average of 4\,055 hours of sunshine each year','Arizona'),

сообщение об ошибке при запуске sql файл:

ubuntu@ip-172-26-0-21:~/Jeopardy$ python3 questions1.sql
  File "questions1.sql", line 1
    INSERT INTO game_clues (episode, airdate, round, category, worth, clue, answer) VALUES
              ^
SyntaxError: invalid syntax

1 Ответ

0 голосов
/ 29 апреля 2020

Как сказано в комментариях, мне нужны были кавычки вокруг моего строкового литерала. Мне также нужно было сделать их тройными кавычками, так как у меня была многострочная строка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...