在SQLAlchemy中,Column
的默認值可以通過在Column
的構造函數中使用default
參數來設置。default
參數可以是一個值、一個函數或一個SQL表達式。
以下是一些常見的用法示例:
from sqlalchemy import Column, Integer, String
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String, default='John')
在上面的示例中,name
列的默認值設置為'John'
。
from sqlalchemy import Column, Integer, func
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
created_at = Column(DateTime, default=func.now())
在上面的示例中,created_at
列的默認值設置為當前時間。
from sqlalchemy import Column, Integer, text
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
active = Column(Integer, default=text('1'))
在上面的示例中,active
列的默認值設置為SQL表達式1
。
需要注意的是,默認值的計算是在數據庫層面上進行的,而不是在Python層面上進行的。因此,使用Python函數作為默認值時需要使用SQLAlchemy提供的函數(如func.now()
)來代替Python的內置函數(如datetime.now()
)。此外,還需要注意默認值函數或SQL表達式的返回類型必須與列的類型相匹配。