diff --git a/push_to_db.py b/push_to_db.py index 3e40f8c6026b357e65ac9a83a9785afe11f15191..043f72f9da16d07750fe224edf9138011b82ff83 100644 --- a/push_to_db.py +++ b/push_to_db.py @@ -61,8 +61,10 @@ def create_new_one(_dict, part_type, _cursor): columns = ", ".join([f'"{key}"' for key, _ in _obj]) values = [value for _, value in _obj] - sql = """WITH rows AS (INSERT INTO parts (name, type) VALUES (%s, %s) RETURNING id) -INSERT INTO part_info_{type} (part_id, {columns}) (SELECT rows.id, {value_entries} FROM rows) RETURNING part_id;""".format(type=_part_type_enum, columns=columns, value_entries=", ".join(["%s"] * len(values))) + sql = """WITH rows AS (INSERT INTO parts (name, type) VALUES (%s, %s) ON CONFLICT (name) DO UPDATE SET name = excluded.name RETURNING id) +INSERT INTO part_info_{type} (part_id, {columns}) +(SELECT rows.id, {value_entries} FROM rows) +RETURNING part_id;""".format(type=_part_type_enum, columns=columns, value_entries=", ".join(["%s"] * len(values))) _cursor.execute(sql, (name, _part_type_enum, *values)) data = _cursor.fetchall() @@ -72,7 +74,7 @@ INSERT INTO part_info_{type} (part_id, {columns}) (SELECT rows.id, {value_entrie def get_user_by_email(_cursor, _email): - _cursor.execute("SELECT id FROM users WHERE email = %s;", (_email,)) + _cursor.execute("SELECT id FROM usersd WHERE email = %s;", (_email,)) data = _cursor.fetchall() if data: