1. 构造dataframe
import pandas as pd
import numpy as npdf = pd.DataFrame(data=np.random.randint(0, 20, size=(1000, 3)))
df.columns = ['col_1', 'col_2', 'col_3']
  1. 构造数据库
from sqlalchemy import create_enginedb_name = "test_db"  # 要保存的数据库名
table_name = "my_item_table"  # 要保存的表名
# engine = create_engine("mysql+pymysql://用户名:密码@127.0.0.1:3306/数据库名")
engine = create_engine('mysql+pymysql://testuser:testpassword@localhost:3306/{}'.format(db_name), encoding='utf8')
engine.connect()
  1. 然后使用to_sql()先保存dataframe
df.to_sql(table_name, engine, if_exists='replace', index=False)
  1. 使用sql语句在第一列插入主键ID
with engine.connect() as con:con.execute("""ALTER TABLE `{}`.`{}` \ADD COLUMN `id` INT NOT NULL AUTO_INCREMENT FIRST, \ADD PRIMARY KEY (`id`);""".format(db_name, table_name))

对应的SQL其实是:

ALTER TABLE `test_db`.`my_item_table`ADD COLUMN `id` INT NOT NULL AUTO_INCREMENT FIRST,ADD PRIMARY KEY (`id`);

然后就可以看到结果:

  1. 验证

mysql workbench中可以通过:

SELECT * FROM test_db.my_item_table;

得到结果:

完整代码

import pandas as pd
import numpy as npdf = pd.DataFrame(data=np.random.randint(0, 20, size=(1000, 3)))
df.columns = ['col_1', 'col_2', 'col_3']
# 连接数据库
from sqlalchemy import create_enginedb_name = "test_db"  # 要保存的数据库名
table_name = "my_item_table"  # 要保存的表名
# engine = create_engine("mysql+pymysql://用户名:密码@127.0.0.1:3306/数据库名")
engine = create_engine('mysql+pymysql://testuser:testpassword@localhost:3306/{}'.format(db_name), encoding='utf8')
engine.connect()
# save to database
df.to_sql(table_name, engine, if_exists='replace', index=False)
# 增加主键
with engine.connect() as con:con.execute("""ALTER TABLE `{}`.`{}` \ADD COLUMN `id` INT NOT NULL AUTO_INCREMENT FIRST, \ADD PRIMARY KEY (`id`);""".format(db_name, table_name))

pandas to_sql保存数据到数据库后,添加自增长的主键ID(PRIMARY KEY)相关推荐

  1. mybatis添加记录时返回主键id

    参考:mybatis添加记录时返回主键id 场景 有些时候我们在添加记录成功后希望能直接获取到该记录的主键id值,而不需要再执行一次查询操作. 在使用mybatis作为ORM组件时,可以很方便地达到这 ...

  2. MySQL数据库——MySQL主键(PRIMARY KEY)

    主键(PRIMARY KEY)的完整称呼是"主键约束",是 MySQL 中使用最为频繁的约束.一般情况下,为了便于 DBMS 更快的查找到表中的记录,都会在表中设置一个主键. 主键 ...

  3. MySQL如何添加主键(PRIMARY KEY)

    1 2 3 4 5 6 7 分步阅读 简单来说主键的作用就是确定数据的唯一性,假如我给员工的id添加了主键约束,那么这个id永远不可能重复,所以才可以确定同一个人的身份,复合主键的意思就是定义两个列来 ...

  4. 主键约束(PRIMARY KEY) [MySQL][数据库]

    主键约束(PRIMARY KEY) 主键约束的特点: 主键约束相当于唯一性约束+ 非空约束,主键约束不允许重复,也不允许出现空值 一个表最多只能有一个主键约束,建立主键约束可以在列级别创建,也可以再表 ...

  5. 主键(primary key)的设置和添加

    主键(primary key)的设置和添加 1.先创建了表,往表里添加主键 mysql> alter table user-> add primary key(useID); 2.创建表时 ...

  6. Oracle数据库-主键(primary key)、外键(foreign key)、候选键(candidate key)、超键(super key)和references总结...

    主要介绍一下个人对主键(primary key).外键(foreign key).候选键(Candidate key).超键(super key).references的总结 概念: 主键:用户选择元 ...

  7. java 保存数据到数据库_保存数据到数据库成功

    保存数据到数据库成功 package com.demo; import javax.swing.AbstractButton; import javax.swing.JFrame;//框架 impor ...

  8. mybatis插入数据后返回自增主键ID详解

    1.场景介绍: ​ 开发过程中我们经常性的会用到许多的中间表,用于数据之间的对应和关联.这个时候我们关联最多的就是ID,我们在一张表中插入数据后级联增加到关联表中.我们熟知的mybatis在插入数据后 ...

  9. Mybatis 插入数据后返回自增主键ID

    1 xml 映射文件中处理 在映射器中配置获取记录主键值 在xml中 insert 标签中定义 : useGeneratedKeys为true,用来设置返回主键id的值, keyProperty 代表 ...

最新文章

  1. Zookeeper常用命令使用
  2. 机器学习书籍资料(自己正在读的)---self-reading ML booklist ( To be continued )
  3. 笔记-项目采购管理-复习要点
  4. tp框架命名空间使用(namespace,use,as,\)
  5. 总结一些通用的处理方法
  6. javax.crypto.IllegalBlockSizeException: Input length not multiple of 8 bytes
  7. mysql增备脚本--xtrabackup实现
  8. 数据结构中的堆和操作系统里的堆不一样为什么都叫堆呢?
  9. 用cloud-zoom做一个仿淘宝的宝贝放大镜查看功能
  10. Ruby on rails3新手谈(1):Ruby on rails环境搭建
  11. php伪静态限制网页播放视频,php伪静态后html不能访问怎么办
  12. 通达信公式系统 入门 LTS
  13. 怎么把动图分解成图片?gif怎么拆分成几张?
  14. 【论文阅读】UAV-Based Crop and Weed Classification for Smart Farming
  15. uva-1645-递推
  16. Codeup1032-1033、1045
  17. 主流RGBD数据集简介 2019.12.15
  18. (三)改掉这些坏习惯,还怕写不出优雅的代码?
  19. 计算机ms分值,计算机ms分值
  20. 全球顶尖大学已将区块链加入其课程

热门文章

  1. 从helloworld回顾程序的编译过程之三——静态链接
  2. 字典和键值对换输出_Python知识小结—字典
  3. MySQL表/视图/存储过程and函数/触发器/事件与数据库之间的关系
  4. MySQL数据的重复处理
  5. 面试项目亮点_当面试官谈到项目经验的时候,你知道怎么回答吗?怎么反过来控制面试流程?...
  6. 高光谱数据集_基于飞桨实现高光谱反演:通过遥感数据获取土壤某物质含量
  7. iOS开发:创建真机调试证书
  8. Tegra X1性能解析
  9. 关于OpenGL ES中的纹理压缩
  10. 返回最大数,不同语言之间的比较