Как не вставлять данные в таблицу, если они УЖЕ в ней есть?

У меня есть следующая информация об играх НХЛ, которую я добавляю в таблицу games. Таблицу games я создаю следующим запросом:

cur.execute('CREATE TABLE IF NOT EXISTS games (GAMEDATE DATE NOT NULL, AWAY_TEAM varchar(32), HOME_TEAM varchar(32), SCORES varchar(32))')

for line in all_stlouis_games_list:
    sql_string = """ INSERT INTO games (GAMEDATE, AWAY_TEAM, HOME_TEAM, SCORES) VALUES (%s,%s,%s,%s) ON CONFLICT  DO NOTHING"""
    record_to_insert = tuple(line)
    cur.execute(sql_string, record_to_insert)
    conn.commit()

Мне нужно, чтобы в таблицу не вставлялись уже существующие в ней записи. Допустим, если в таблице уже есть 2022-01-08 Washington Capitals St. Louis Blues 6, то данная строка не будет помещаться в таблицу снова. Я пытался воспользоваться ON CONFLICT, но никакого результата это мне не дало. Я не до конца понимаю, как оно работает, судя по всему, работаете при совпадении уникальных id. Возможно, я могу воспользоваться INSERT ... WHERE NOT EXIST (SELECT FROM games WHERE...) но точно не знаю как правильно это сделать в моем случае.

2022-01-08  Washington Capitals St. Louis Blues 6
2022-01-09  Dallas Stars    St. Louis Blues 3
2022-01-14  Seattle Kraken  St. Louis Blues 3
2022-01-16  Toronto Maple Leafs St. Louis Blues 11
2022-01-18  Nashville Predators St. Louis Blues 8
2022-01-08  Washington Capitals St. Louis Blues 6
2022-01-09  Dallas Stars    St. Louis Blues 3
2022-01-14  Seattle Kraken  St. Louis Blues 3
2022-01-16  Toronto Maple Leafs St. Louis Blues 11
2022-01-18  Nashville Predators St. Louis Blues 8

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