SQLAlchemy는 Python에서 사용할 수 있는 인기있는 ORM(Object Relational Mapping) 라이브러리입니다. SQLAlchemy를 사용하면 데이터베이스 테이블과 상호작용하는 코드를 간단하게 작성할 수 있습니다. 이번 포스트에서는 SQLAlchemy에서 속성 제약 조건을 설정하는 방법에 대해 알아보겠습니다.
Unique 제약 조건 설정하기
특정 속성을 고유하게 유지하기 위해 Unique 제약 조건을 설정할 수 있습니다. 이는 중복된 값을 허용하지 않는 속성을 정의하는 데 사용됩니다. SQLAlchemy에서는 unique=True를 사용하여 Unique 제약 조건을 설정할 수 있습니다.
from sqlalchemy import Column, String
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
username = Column(String, unique=True)
email = Column(String, unique=True)
위의 예제에서 username과 email 속성은 중복된 값을 허용하지 않는 고유한 속성으로 정의되었습니다.
Not Null 제약 조건 설정하기
특정 속성이 Null 값을 허용하지 않도록 하려면 Not Null 제약 조건을 설정해야 합니다. SQLAlchemy에서는 nullable=False를 사용하여 Not Null 제약 조건을 설정할 수 있습니다.
from sqlalchemy import Column, String
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
username = Column(String, nullable=False)
email = Column(String, nullable=False)
위의 예제에서 username과 email 속성은 Null 값을 허용하지 않는 속성으로 정의되었습니다.
기본값 설정하기
특정 속성에 기본값을 설정하려면 default 매개변수를 사용하여 기본값을 지정해야 합니다. SQLAlchemy에서는 이를 편리하게 처리할 수 있습니다.
from sqlalchemy import Column, String, DateTime, func
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
username = Column(String, nullable=False)
email = Column(String, nullable=False)
created_at = Column(DateTime, default=func.now())
위의 예제에서 created_at 속성은 func.now()를 사용하여 현재 시간을 기본값으로 설정합니다.
이렇게 SQLAlchemy에서 속성 제약 조건을 설정할 수 있습니다. 데이터베이스 모델을 정의할 때 필요한 제약 조건을 간편하게 설정하여 데이터의 일관성과 무결성을 유지할 수 있습니다.