(postgresql)Столбец не существует

введите сюда описание изображенияЕсли через cmd выполняю: insert into medical_cards values(511111, 2, '-', 'д', 'н'); то все ок, но при использовании "" вместо '', то возникает ошибка, что столбец не существует. Из-за этого код python не работает

def insert_medical_cards_table(medical_card_id, blood_type, rhesus_factor, allergy, chronic_diseases):
conn, cur = connect("vaccinatedDB", "postgres", "toor", "localhost", "5432")

try:
    cur.execute("INSERT INTO medical_cards VALUES(%s, %s, %s, %s, %s)"
               (medical_card_id, blood_type, rhesus_factor, allergy, chronic_diseases))

    conn.commit()

except Exception as error:
    print("error insert data into medical cards")
finally:
    if conn is not None:
        conn.close()

def create_medical_cards_table():
conn, cur = connect("vaccinatedDB", "postgres", "toor", "localhost", "5432")

try:
    command = """
        CREATE TABLE medical_cards(
            medical_card_id INTEGER PRIMARY KEY,
            blood_type INTEGER,
            rhesus_factor VARCHAR(1),
            allergy VARCHAR(1),
            chronic_diseases VARCHAR(1)
        ) 
    """

    cur.execute(command)
    conn.commit()

except Exception as error:
    print("error create users_medical_card_table")
finally:
    if conn is not None:
        conn.close()

Точно такой же код для другой таблицы работает

def insert_users_passport_data_table(passport_id, series, number, registration, date_birth, gender):
conn, cur = connect("vaccinatedDB", "postgres", "toor", "localhost", "5432")

try:
    cur.execute("INSERT INTO passport_data VALUES(%s, %s, %s, %s, %s, %s)",
               (passport_id, series, number, registration, date_birth, gender))

    conn.commit()

except Exception as error:
    print("error insert data into passport data")
finally:
    if conn is not None:
        conn.close()

Ответы (1 шт):

Автор решения: CrazyElf
    cur.execute("INSERT INTO medical_cards VALUES(%s, %s, %s, %s, %s)"
               (medical_card_id, blood_type, rhesus_factor, allergy, chronic_diseases))

Насколько я понял, у вас тут пропущена запятая, должно быть так:

    cur.execute("INSERT INTO medical_cards VALUES(%s, %s, %s, %s, %s)", # вот здесь!!!
               (medical_card_id, blood_type, rhesus_factor, allergy, chronic_diseases))

На скрине у вас питон ругается, что вы к строке обращаетесь как к функции, у вас тут получается что-то типа "строка"(параметры) из-за того, что пропущена запятая.

→ Ссылка