在python中用sql创建表_Python Pandas to_sql,如何用主键创建表?
免责声明:这个答案更具实验性和实用性,但也许值得一提.
我发现类pandas.io.sql.SQLTable已命名参数键,如果为其指定字段名称,则此字段将成为主键:
不幸的是,你不能只从DataFrame.to_sql()函数传递这个参数.要使用它你应该:
>创建pandas.io.SQLDatabase实例
engine = sa.create_engine('postgresql:///somedb')
pandas_sql = pd.io.sql.pandasSQL_builder(engine, schema=None, flavor=None)
>定义与pandas.io.SQLDatabase.to_sql()类似的函数,但附加* kwargs参数,该参数传递给在其中创建的pandas.io.SQLTable对象(我刚刚复制了原始的to_sql()方法并添加了* kwargs):
def to_sql_k(self, frame, name, if_exists='fail', index=True,
index_label=None, schema=None, chunksize=None, dtype=None, **kwargs):
if dtype is not None:
from sqlalchemy.types import to_instance, TypeEngine
for col, my_type in dtype.items():
if not isinstance(to_instance(my_type), TypeEngine):
raise ValueError('The type of %s is not a SQLAlchemy '
'type ' % col)
table = pd.io.sql.SQLTable(name, self, frame=frame, index=index,
if_exists=if_exists, index_label=index_label,
schema=schema, dtype=dtype, **kwargs)
table.create()
table.insert(chunksize)
>使用您的SQLDatabase实例和要保存的数据帧调用此函数
to_sql_k(pandas_sql, df2save, 'tmp',
index=True, index_label='id', keys='id', if_exists='replace')
我们得到类似的东西
CREATE TABLE public.tmp
(
id bigint NOT NULL DEFAULT nextval('tmp_id_seq'::regclass),
...
)
在数据库中.
PS当然,您可以使用Monkey-patch DataFrame,io.SQLDatabase和io.to_sql()函数来方便地使用此变通方法.
在python中用sql创建表_Python Pandas to_sql,如何用主键创建表?相关推荐
- python办公自动化(9)利用pandas的行列转换处理排班表
python办公自动化(9)利用pandas的行列转换处理排班表 原始数据: 处理效果: 1.pandas行转列 #!/usr/bin/python # -*- coding: gbk -*- imp ...
- mysql主键创建非聚集索引_什么是聚集索引,非聚集索引,索引覆盖,回表,索引下推...
聚集索引 我们先建如下的一张表 CREATE TABLE `student` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '学号',`name` var ...
- 学习笔记 - Postgres如何创建有自增主键的表
1.MySQL迁移到Postgres 之前用mysql习惯了,所以建表都是有自增主键的,建表规范里面大部分都是这样约定的,比如:(`id` BIGINT (11) UNSIGNED NOT NULL ...
- SQL Server2019数据库查询所有数据库名、表名、表结构、表字段、主键方法演示,执行sql提示对象名‘user_tab_columns‘、 ‘user_cons_columns‘ 无效问题解决
SQL Server2019 数据库查询所有数据库名.表名.表结构.表字段.主键方法演示 第一章:查询方法 ① 查询所有数据库名 ② 查询所有表名方法 ③ 查询表结构.表字段方法 ④ 查询主键方法 第 ...
- Sql Server获取数据库名,表信息,字段信息,主键信息等
--Sql Server获取数据库名,表信息,字段信息,主键信息等--获取所有数据库名: SELECT name FROM master..sysdatabases WHERE name NOT IN ...
- oracle 主键 删除表_oracle删除表字段和oracle表增加字段
这篇文章主要介绍了oracle表增加字段.删除表字段修改表字段的使用方法,大家参考使用吧 添加字段的语法:alter table tablename add (column datatype [def ...
- oracle查询表的字段类型有哪些,oracle中查询表的信息,包括表名,字段名,字段类型,主键(精)...
通过搜索摸索,总结了一下 oracle 中查询表的信息,包括表名,字段名,字段类型,主键, 外键唯一性约束信息,索引信息查询 SQL 如下,希望对大家有所帮助: 1.查询出所有的用户表 select ...
- oracle执行计划走索引类型,SQL执行计划问题:where条件是主键(NUMBER类型字段)LIKE :VAR,为什么执行计划不走索引?...
SQL执行计划问题:where条件是主键(NUMBER类型字段)LIKE :VAR,为什么执行计划不走索引? 中文社区 (MOSC) 数据库 (MOSC) 6 Replies Last update ...
- Spring Data JAP框架处理表关系的步骤(一对一主键关联
Spring Data JAP框架处理表关系的步骤: 1)确定表和表之间的关系 2)对应表创建实体类 3)在实体类配置注解关联关系 4)测试 一对一表关系的实现方案(主键关联: 1 在Customer ...
最新文章
- (七)STM32的RTC简单操作
- pgsql 前10条_白沙湾南片区11条新建道路最新进度及建成时间,已建成一条!还有一条将通车...
- 求一个二维整数数组最大子数组之和,时间复杂度为N^2
- WPF 用代码实现WrapPanel右侧自动对齐(解决多余空白问题)
- 现代软件工程 (备份)
- Javascript第六章JavaScript用new创建对象第一课
- 吐血整理!必须收藏,44条代码优化细节
- 黄色光纤跳线、橙色光纤跳线、蓝色光纤跳线区别
- <机器学习 房价预测 >对贝壳租房网 信息爬取 及处理。
- EAS序时簿界面显示,不再忽略数值零
- 主引导记录(MBR)分析
- 儿童台灯怎么选对眼睛好?分享央视推荐的护眼灯
- 【疑难解决】H265编码流媒体播放器EasyPlayer.js播放HLS H265视频流,遇到黑屏如何排查?
- 武汉工程大学信息与计算科学专业面向对象程序设计课程设计题
- windows10系统设置选项里没有触摸板选项
- 你要的摄像头检测来啦
- 安全生产六步法是什么_海孜煤矿安全生产管理“六步法”实施办法.doc
- mysql字段类型详解_MySQL字段类型详解
- PL2303GT USB 转 RS232 桥接控制器
- android+3g移植,惊呆!普耐尔MOMO迷你3G移植MIUI系统
热门文章
- 转行软件测试两年了,听大神说测试前途是IT里最low的,我慌了......
- 【转】谈谈CICS ENQ,DEQ的使用_REDEMPTION_百度空间
- html网页鼠标样式、css精灵、iconfont、过渡动画笔记
- 学习前端怎么样?优势有哪些
- Elixir-Atoms
- 鄙人最近搞的js购物车程序
- dubbo下Dubbo协议注册中心理解SimpleRegistryService之register,getRegistered,notify方法理解注释
- 论文复刻:排污权机制是否提高了企业全要素生产率(附代码、数据、原文献)
- 数字孪生隧道为智慧交通运营保驾护航
- safari 扩展_为什么构建Safari应用扩展程序是2020年的噩梦