skip to content
barorin&?

SQLAlchemyで既存判定を行う方法

/ 1 min read

はじめに

SQLAlchemyで既存判定を行う方法をまとめてみます。

方法

前提

from sqlalchemy import Column, Integer, String
from setting import BaseModel

class Fruit(BaseModel):
    __tablename__ = 'fruit\_table'
    id = Column(Integer, primary_key=True)
    fruit = Column(String)

判定プログラム

from sqlalchemy import create_engine, literal
from sqlalchemy.orm import sessionmaker

engine = create_engine('sqlite:///fruit\_db.sqlite3')
session = sessionmaker(bind=engine)

q = session.query(Fruit).filter(Fruit.name == 'apple')

if session.query(literal(True)).filter(q.exists()).scalar(): # 既にデータがあればTrueを返す
    print('既にデータあり')
else:
    print('まだデータがない')