UndefinedTable: отношение не существует - PullRequest
0 голосов
/ 26 февраля 2020

Я работаю с python 3.5.2 и пытаюсь запустить команды basi c с postgres.

Я подключаюсь к postgres docker серверу:

conn = psycopg2.connect(user='postgres', password='docker', host='127.0.0.1', port='5432') 
cursor = self.conn.cursor()

Для первого времени Я создаю новую таблицу:

sql = '''CREATE TABLE ''' + self.table_name + '''(
         FIRST_NAME CHAR(20) NOT NULL,
         LAST_NAME CHAR(20),
         AGE INT,
         SEX CHAR(6),
         INCOME FLOAT
      )'''
cursor.execute(sql)

И вставляю строки с помощью:

def add_emloyee(name, last, age, sex, income):
    sql = '''INSERT INTO ''' + self.table_name + '''(FIRST_NAME,LAST_NAME, AGE,SEX,INCOME)
        VALUES (%s, %s, %s, %s, %s)'''
    cursor.execute(sql, (name, last, age, sex, income))

Все работает хорошо. Но когда я снова запускаю приложение (после того как я его закрыл и запустил снова) и комментирую команды создания таблицы (потому что я создал его в предыдущем запуске) и пытаюсь вставить новые данные в таблицу, я получаю сообщение об ошибке:

psycopg2.errors.UndefinedTable: relation "employee" does not exist
LINE 1: INSERT INTO EMPLOYEE(FIRST_NAME,LAST_NAME, AGE,SEX,INCOME)

Почему это происходит?

1 Ответ

0 голосов
/ 26 февраля 2020

Я пропустил команду commit после создания таблицы (или добавления новой строки)

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