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子类:
PrimaryKeyConstraintForeignKeyConstraint
注意,在使用不同版本的SQLAlchemy时,以上参数中:
- 老版本中可能部分参数还没有
- 新版本中可能废弃了部分参数
keep_existing与extend_existing互相排斥,不能同时传递为Truekeep_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 实例来恢复当前的数据. 建表是非常重要 ...
随机推荐
- sql 日期类型可以使用大于、小于号直接进行比较运算
select * from emp where hiredate > '1982-1-1'; -- mysqlselect * from emp where hiredate > to_ ...
- sql 中的注释
1.单行注释 “-- ” 即:两个中滑线加一个空格 2.多行注释 "/* ... */" 示例: -- 单行注释 /* 多行注释*/ create table test(id i ...
- public 类、default 类、内部类、匿名内部类
0.父类里private的成员变量,子类只有拥有权,没有使用权. 1.default 类 和public 类 package HelloWorld; public class HelloWorld { ...
- Python下操作sqlite3
import sqlite3 dbpath = 'C:\\Django\\workplace\\sf\\d1.sqlite3' conn = sqlite3.connect(dbpath) cu = ...
- 安装Stunnel来实现正向代理邮件
文:铁乐与猫 2017年8月 一开始我是使用yum install来安装stunnel的 感觉版本低点也无所谓,毕竟只是拿来加密代理一下邮件收发. 可是后来发现之前下载的最新官网版本的tar包里有很多 ...
- Beanstalkd 的理解
Beanstalkd 的理解 Beanstalkd 是一个轻量级的内存型队列,利用了和Memcache 类似的协议.其官网beanstakkd官网 下方的感谢语说: Many thanks to me ...
- UserUI程序实现过程简述
1.__tmainCRTStartup 2. mainret = _tWinMain( (HINSTANCE)&__ImageBase, NULL, lpszCommandLine, Star ...
- 使用FASTJSON做反序列化的时间格式处理
JSONObject.DEFFAULT_DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ss.mmm"; Productorder tmp1 = JSONObj ...
- Phthon3.4 新特性
1. print的变化:. 在python3.0中,print成为了一个函数,将传入的参数一输出. Python3.0: Python 2.5: 2.使用比较操作符时,如果被比较的对象没有 ...
- JavaScript基础之数据类型部分总结
JavaScript 是世界上最流行的脚本语言,被设计为向 HTML 页面增加交互性. 我把它的基础语法分为了三个部分:数据类型,运算符,流程控制语句.入门还是比较容易的. 基本概念: 标识符:指变量 ...