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에서 속성 제약 조건을 설정할 수 있습니다. 데이터베이스 모델을 정의할 때 필요한 제약 조건을 간편하게 설정하여 데이터의 일관성과 무결성을 유지할 수 있습니다.