SQLAlchemy Table(表)类方式 - Table类和Column类
Table 构造方法
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类的更多相关文章
- Sql Server中的表访问方式Table Scan, Index Scan, Index Seek
1.oracle中的表访问方式 在oracle中有表访问方式的说法,访问表中的数据主要通过三种方式进行访问: 全表扫描(full table scan),直接访问数据页,查找满足条件的数据 通过row ...
- 转:Sql Server中的表访问方式Table Scan, Index Scan, Index Seek
0.参考文献 Table Scan, Index Scan, Index Seek SQL SERVER – Index Seek vs. Index Scan – Diffefence and Us ...
- sqlalchemy根据表名动态创建model类
作用如题,直接上代码吧,另外还支持 copy一张表的表结构,新建表并获得model对象 # coding: utf-8 import traceback from sqlalchemy import ...
- springdata 查询思路:基本的单表查询方法(id,sort) ---->较复杂的单表查询(注解方式,原生sql)--->实现继承类---->复杂的多表联合查询 onetomany
springdata 查询思路:基本的单表查询方法(id,sort) ---->较复杂的单表查询(注解方式,原生sql)--->实现继承类---->复杂的多表联合查询 onetoma ...
- 表访问方式---->通过ROWID访问表(table access by ROWID)
通过ROWID访问表(table access by ROWID) ROWID是一个伪列,即是一个非用户定义的列,而又实际存储于数据库之中.每一个表都有一个ROWID列,一个ROWID值 ...
- BootStrap入门教程 (二) :BASE CSS(排版(Typography),表格(Table),表单(Forms),按钮(Buttons))
上讲回顾:Bootstrap的手脚架(Scaffolding)提供了固定(fixed)和流式(fluid)两种布局,它同时建立了一个宽达940px和12列的格网系统. 基于手脚架(Scaffoldin ...
- Lua和C++交互 学习记录之九:在Lua中以面向对象的方式使用C++注册的类
主要内容转载自:子龙山人博客(强烈建议去子龙山人博客完全学习一遍) 部分内容查阅自:<Lua 5.3 参考手册>中文版 译者 云风 制作 Kavcc vs2013+lua-5.3.3 在 ...
- 哈希表(Hash Table)原理及其实现
原理 介绍 哈希表(Hash table,也叫散列表), 是根据关键码值(Key value)而直接进行访问的数据结构.也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度.这个映 ...
- mysql 从 frm 文件恢复 table 表结构的3种方法
mysql 正常运行的时候,查看 table 的结构并不是困难的事. 但是有时 mysql 发生故障,这种方法便不再可行. 当遇到故障,通常使用新的 mysql 实例来恢复当前的数据. 建表是非常重要 ...
随机推荐
- 带你从零学ReactNative开发跨平台App开发[react native SqlLite 终极运用](十二)
ReactNative跨平台开发系列教程: 带你从零学ReactNative开发跨平台App开发(一) 带你从零学ReactNative开发跨平台App开发(二) 带你从零学ReactNative开发 ...
- SQL Server ->> 条件筛选做法之 -- IN(VALUE1,VALUE2,...)与INNER JOIN STRING_SPLIT()性能对比
在以逗号拼接而成的字符串,传入给IN字句的元素字符串中包涵了1400多个元素 两种做法分别为 AND e.ssPfCityId IN ( SELECT CAST(value AS INT) FROM ...
- .net下log4net的使用
这里以控制台应用程序为例 首先是要添加引用: 安装后可以看到项目中多了log4net的引用: 添加应用程序配置文件app.config,配置log4net <?xml version=" ...
- tshark----wireshark的命令行工具
tshark - 转储和分析网络流 概要 tshark的 [ -2 ] [ -a <捕捉自动停止条件>] ... [ -b <捕捉环形缓冲区选项>] ... [ ...
- python基础_类型_list
#list 类似数组array,以[]扩起来逗号分隔 a = ['a','b','c'] #常用函数 a.append('c') #在list最后增加一个元素,结果是['a','b','c','c'] ...
- Python初学者第二十三天 函数进阶(2)装饰器
装饰器: 需求----> 写一个功能,测试其他同事函数的调用效率. 第一版:功能版 import time def func(): time.sleep(0.2) print('非常复杂') d ...
- 如何访问WEB-INFO目录中的jsp文件
说明:应用服务器把WEB-INF指为禁访目录,即直接在浏览器里是不能访问的. 如何访问如下: 1.在项目的web.xml文件中去配置servlet <servlet> <servle ...
- (1)StringBuilder类和StringBuffer类 (2)日期相关的类 (3)集合框架 (4)List集合
1.StringBuilder类和StringBuffer类(查手册会用即可)1.1 基本概念 由于String类描述的字符串内容无法更改,若程序中出现大量类似的字符串时需要申请独立的内存空间单独保存 ...
- #001 如何组织JS代码
如何组织JS代码 有没有这样的经历,在编写代码的时候,因为功能简单,写的时候比较随意,所有的JS代码都放在一个文件里面,但是随着功能的增加,发现代码很乱,不好维护. 简单的整理了一下,目前对已有项目的 ...
- 4-4 R语言函数 tapply
#对向量的子集进行操作 #tapply(参数):tapply(向量,因子/因子列表,函数/函数名) > x <- c(rnorm(5),runif(5),rnorm(5,1)) > ...