sqlalchemy ORM进阶- 批量插入数据
参考:
https://www.jb51.net/article/49789.htm
https://blog.csdn.net/littlely_ll/article/details/82706874
import pandas as pd
import sqlalchemy df = pd.DataFrame()
print(df)
结果:
Empty DataFrame
Columns: []
Index: []
插入1条数据
import sqlalchemy
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column,String,Integer,Float,TIMESTAMP from demo.demogetConnection import GetConnection session = GetConnection.session
# engine =GetConnection.engine Base = declarative_base()
class User(Base):
__tablename__="user"
id = Column(Integer,primary_key=True)
name = Column(String(45)) def __repr__(self):
return "<User(id='%s',name='%s')>"%(self.id,self.name) #插入单条数据:
new_user = User(name='lily')
#添加数据,但还没有提交,出错还可以使用rollback撤回操作
session.add(new_user)
#提交到数据,这一步才是真正的将数据插入到数据库中了
session.commit()
结果

利用pandas批量插入数据
方式一:使用pandas_obj.to_sql()
import pandas as pd
import sqlalchemy
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column,String,Integer,Float,TIMESTAMP from demo.demogetConnection import GetConnection session = GetConnection.session
engine =GetConnection.engine Base = declarative_base()
class User(Base):
__tablename__="user"
id = Column(Integer,primary_key=True)
name = Column(String(45)) def __repr__(self):
return "<User(id='%s',name='%s')>"%(self.id,self.name) df = pd.DataFrame({"name":["Jon","Mary","Tom"]})
df.to_sql("user",con=engine,if_exists="append",index=False)
在使用to_sql时注意if_exists参数,如果是replace的话它会先drop掉表,然后再创建表,最后插入数据
结果:

第2种方法,使用for循环
import sqlalchemy
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column,String,Integer,Float,TIMESTAMP from demo.demogetConnection import GetConnection session = GetConnection.session
engine =GetConnection.engine Base = declarative_base()
class User(Base):
__tablename__="user"
id = Column(Integer,primary_key=True)
name = Column(String(45)) def __repr__(self):
return "<User(id='%s',name='%s')>"%(self.id,self.name) #原生方法,批量插入
a=[]
for i in range(3):
a.append({"name":"曹操%s"%i}) print(a)
session.execute(User.__table__.insert(),a)
session.commit()
打印的a的结果:
[{'name': '曹操0'}, {'name': '曹操1'}, {'name': '曹操2'}]
查询表的结果,已经插入成功了:

sqlalchemy ORM进阶- 批量插入数据的更多相关文章
- Django orm 实现批量插入数据
Django ORM 中的批量操作 在Hibenate中,通过批量提交SQL操作,部分地实现了数据库的批量操作.但在Django的ORM中的批量操作却要完美得多,真是一个惊喜. 数据模型定义 首先,定 ...
- PHP框架 Laravel Eloquent ORM 批量插入数据 && 批量更新目前没有
foreach ($products as $v=>$a) { $count[] = array('product_name' => $a['name'], 'product_weight ...
- django----Sweetalert bulk_create批量插入数据 自定义分页器
目录 一.Sweetalert使用AJAX操作 二.bulk_create 三.分页器 divmod 分页器组件 自定义分页器的使用 一.Sweetalert使用AJAX操作 sweetalert ...
- django与ajax:ajax结合sweetalter ,批量插入数据 ;分页器组件
目录 一.ajax结合sweetalter 二.bulk_create批量插入数据 三.简易版分页器推导 1. 推导步骤 四.自定义分页器的使用 1. 自定义分页器模板 2. 使用方法 (1)后端代码 ...
- [Django高级之批量插入数据、分页器组件]
[Django高级之批量插入数据.分页器组件] 批量插入数据 模板层models.py from django.db import models class Books(models.Model): ...
- C#批量插入数据到Sqlserver中的四种方式
我的新书ASP.NET MVC企业级实战预计明年2月份出版,感谢大家关注! 本篇,我将来讲解一下在Sqlserver中批量插入数据. 先创建一个用来测试的数据库和表,为了让插入数据更快,表中主键采用的 ...
- .Net批量插入数据到SQLServer数据库,System.Data.SqlClient.SqlBulkCopy类批量插入大数据到数据库
批量的的数据导入数据库中,尽量少的访问数据库,高性能的对数据库进行存储. 采用SqlBulkCopy来处理存储数据.SqlBulkCopy存储大批量的数据非常的高效,将内存中的数据表直接的一次性的存储 ...
- sql 中的Bulk和C# 中的SqlBulkCopy批量插入数据 ( 回顾 and 粗谈 )
通常,我们会对于一个文本文件数据导入到数据库中,不多说,上代码. 首先,表结构如下. 其次,在我当前D盘中有个文本文件名为2.txt的文件. 在数据库中,可以这样通过一句代码插入. Bulk in ...
- Java 批量插入数据(Oracle)
//批量添加20000条数据用时8秒. try { String url = "jdbc:oracle:thin:@IP:1521:orcl"; // orcl为数据库的SI ...
随机推荐
- 以太坊 EVM内交易执行分析(一)
以太坊上交易最终都会由EVM进行解析存入数据库,今天就来探讨一下,一笔交易是如何别EVM执行的.我们可以把交易分为三种.(注意,和交易相关的模块很多,交易的生命周期存在于整个以太坊中,我们这次只是分析 ...
- 以太坊源码学习 – EVM
学习文档链接:here 一.虚拟机外 主要功能: 执行前将Transaction类型转化成Message,创建虚拟机(EVM)对象,计算一些Gas消耗,以及执行交易完毕后创建收据(Receipt)对象 ...
- python的thread和threading区别
python提供了多种模块用来支持多线程编程, thread(在python3中改名为_thread),threading,和 queue模块. 通过加入queue模块,用户可以创建多个线程共享数据的 ...
- JS事件流与DOM事件处理程序
在Javascript的DOM中,关于事件Event对象的知识是一定要掌握的.Event对象模型主要分为两个部分,一个是Event对象本身具有的属性和方法,这个参照API就可以学得:另一个是在DOM节 ...
- 初探js闭包
1.变量的作用域:全局变量.局部变量 函数内部可以直接读取局部变量 js代码 var n=2; function fun(){ alert(n); } fun(); //2 函数外部不能读取函数内部 ...
- CodeForces 721B Passwords (水题)
题意:给定 n 个密码,你要按长度不递减的顺序进行尝试,问你最多和最少试多少次可能找出密码,每尝试 k 次错误的,就要等5秒. 析:我们只要把长度全都统计下来,然后从1开始去找目标长度,最少的就是正好 ...
- 洛谷 P3953 逛公园【spfa+记忆化dfs+bfs】
spfa预处理出最短路数组dis,然后反向建边bfs出ok[u]表示u能到n点 然后发现有0环的话时候有inf解的,先dfs找0环判断即可 然后dfs,设状态f[u][v]为到u点,还可以跑最短路+v ...
- bzoj 2303: [Apio2011]方格染色【并查集】
画图可知,每一行的状态转移到下一行只有两种:奇数列不变,偶数列^1:偶数列不变,奇数列^1 所以同一行相邻的变革染色格子要放到同一个并查集里,表示这个联通块里的列是联动的 最后统计下联通块数(不包括第 ...
- python中threading中的lock类
虽然线程可以在程序的执行过程中提高程序的运行效率,但是其带来的影响却难以忽略. Lock类是threading中用于锁定当前线程的锁定类.顾名思义,其作用是对当前运行中的线程进行锁定,只有当前线程被释 ...
- CMake学习笔记三:cmake 常用指令
1 基本指令 1,ADD_DEFINITIONS 向 C/C++编译器添加-D 定义,比如: DD_DEFINITIONS(-DENABLE_DEBUG -DABC),参数之间用空格分割. 如果你的代 ...