zl程序教程

您现在的位置是:首页 >  后端

当前栏目

[Work Summary] 使用Python对数据库中的表添加主键id

Python数据库 添加 ID 主键 work Summary 使用
2023-09-11 14:22:53 时间
美图欣赏2022/06/22

在最近的开发需求中,利用Pandas处理数据并整合计算生成一张Output结果表存入数据库中,后来同事要求Output表中添加主键id,想着自己在Navicat手动添加主键id也不是办法,因为是每周都要生成一张新的Output表,索性利用Python对数据库中的表添加主键id,方便快捷又省心

DROP TABLE IF EXISTS `Output`;
CREATE TABLE `Output` (
  `Site` varchar(255) DEFAULT NULL,
  `Material` varchar(255) DEFAULT NULL,
  `Level` varchar(255) DEFAULT NULL,
  `Quantity` int(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

INSERT INTO `Output` VALUES ('A', '01-A123', '1', '12');
INSERT INTO `Output` VALUES ('A', '02-A456', '2', '5');
INSERT INTO `Output` VALUES ('B', '03-B789', '3', '18');
INSERT INTO `Output` VALUES ('B', '04-B741', '1', '25');
INSERT INTO `Output` VALUES ('C', '05-C852', '2', '21');
INSERT INTO `Output` VALUES ('C', '06-C963', '3', '100');

Output表(结果输出表) 

# 对Output表添加主键
import pymysql

# 设置数据库连接信息:ip地址、端口号、用户名、密码、数据库名
db = pymysql.connect(host="127.0.0.1", port=3306, user="root", password="123456", database="test")
# 使用cursor()方法创建一个游标对象cur
cur = db.cursor()
# sql语句
sql = '''ALTER TABLE `%s` add column `id` int(10) not null auto_increment primary key first ''' % ('Output')

try:
    # 使用execute()方法执行SQL语句
    cur.execute(sql)
    # 提交到数据库执行
    db.commit()
    print('Add primary key successfully.')
except Exception as e:
    # 如果发生错误则回滚
    db.rollback()
    print(str(e))
finally:
    # 关闭数据库连接
    db.close()

结果展示: