Ich arbeite in SQLAlchemy
. Ist es möglich, equality
von zwei Zeilen zu setzen, also wenn die Zeile eingefügt wird und es bereits eine Zeile mit den gleichen 2 Spalten gibt, sagen wir "creation_date" und "destination_from", dann wird die zweite Zeile nicht eingefügt?Wie überprüft man das Einfügen von Zeilen auf Duplizität basierend auf mehreren Attributen?
Ich möchte keine PRIMARY KEY
für diese Spalten erstellen.
Ich nehme an, dass das manuelle Überprüfen, ob es bereits eine Zeile mit diesen Spalten gibt, nicht effizient ist.
# -*- coding: utf-8 -*-
from sqlalchemy import create_engine, ForeignKey
from sqlalchemy import Column
import sqlalchemy
from sqlalchemy.ext.declarative import declarative_base
import datetime
engine = create_engine('sqlite:///db.db', echo=False)
Base = declarative_base()
s = sqlalchemy.orm.Session(engine)
class Flight(Base):
__tablename__ = 'flights'
id = Column(sqlalchemy.Integer, primary_key=True)
destination_from = Column(sqlalchemy.String)
destination_to = Column(sqlalchemy.String)
creation_date = Column(sqlalchemy.Date)
start_date = Column(sqlalchemy.Date)
return_date = Column(sqlalchemy.Date)
price = Column(sqlalchemy.Float)
Base.metadata.create_all(engine)
def insert_into_flights(**kwargs):
s.add(Flight(**kwargs))
s.commit()