SQLAlchemy Table(表)類方式 - Table類和Column類
阿新 • • 發佈:2018-10-25
註釋 pri sta small 類型 replace num server metadata 常用
Table 構造方法
1 Table(name, metadata[, *column_list][, **kwargs])
參數說明:
- name 表名
metadata
元數據對象column_list
是列(Column
或其他繼承自SchemaItem
的對象)列表kwargs
主要內容:schema
: (None
)表的模式(一般默認是數據庫名, 無需特別指定; Oracle中是owner
, 當一個數據庫由多個用戶管理時,用戶的默認數據庫不是要連接的數據庫時,需要指定此項)autoload
: (False
)是否自動加載autoload_replace
: (True
)是否自動用元數據中加載的列替換column_list
- 為
True
時自動將column_list
中已經存在了的列替換為從元數據中加載的同名列 - 為
False
時會忽略元數據有,且column_list
中已經存在了的列
- 為
autoload_with
: 自動加載的引擎(Engine
)或連接(Connection
)對象- 為
None
時autoload
為True
時, 會從傳遞的metadata
中尋找引擎或連接對象
- 不為
None
時- 當
autoload
不為True
時,autoload
會自動被修改為True
- 當
- 為
comment
: 註釋extend_existing
: (False
)當表已經存在於元數據中時,如果元數據中存在與column_list
column_list
中同名的列會替換掉元數據中已經有的列keep_existing
: (False
)當表已經存在於元數據中時,如果元數據中存在與column_list
中的列同名的列,column_list
中同名的列會被忽略include_columns
:(None
)從元數據中只需加載的表的列名列表mustexist
: (False
)表名是否一定需要存在於元數據中(不存在時引發異常)
常用SchemaItem
子類:
PrimaryKeyConstraint
ForeignKeyConstraint
註意,在使用不同版本的SQLAlchemy時,以上參數中:
- 老版本中可能部分參數還沒有
- 新版本中可能廢棄了部分參數
keep_existing
與extend_existing
互相排斥,不能同時傳遞為True
keep_existing
與extend_existing
適用於新建表對象;如果要創建新的表,表明已經存在於meta.tables
中時,需要指明任意一個參數,不然會報錯。useexisting
已被廢棄, 新版本使用extend_existing
Column的構造方法
Column([name, ]type_[, **kwargs])
參數說明:
name
字段名type_
字段數據類型,這裏的數據類型包括:
- SQLAlchemy中常用數據類型:
- 整數:
SmallInteger
、Integer
、BigInteger
等- 浮點數:
Float
、Numeric
等- 文本字符串:
String
、Text
、Unicode
、UnicodeText
、CHAR
、VARCHAR
等- 二進制字符串:
LargeBinary
、BINARY
、VARBINARY
等- 日期時間:
Date
、DateTime
、TIMESTAMP
等Constraint
: 約束ForeignKey
: 外鍵ColumnDefault
: 列默認值kwargs
主要內容:
autoincrement
: (False
)是否是主鍵default
: (None
)默認值index
: (None
)索引nullable
: (True
)是否可以為空(NULL
)primary_key
: (False
)是否是主鍵server_default
: (None
)服務端(數據庫中的函數)默認值unique
: (False
)是否唯一comment
: (None
)列註釋
SQLAlchemy Table(表)類方式 - Table類和Column類