在最近的開發需求中,利用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()
結果展示: