MySQL连接器/Python开发指南/连接器/ Python教程教程:使用缓冲游标提高员工工资

6.1教程:使用缓冲游标提高员工工资

下面的示例脚本为所有2000年加入公司但仍留在公司的员工提供了迟来的15%的加薪,明天生效。

为了遍历选定的员工,我们使用缓冲游标。(缓冲游标在执行查询后获取和缓冲结果集的行;看到部分10.6.1”,光标。MySQLCursorBuffered阶级”.)这样,就不需要获取新变量中的行。相反,游标可以用作迭代器。

请注意

这个脚本是一个例子;做这个简单的任务还有其他方法。

从__future__ import print_function from decimal import datetime import datetime, date, timedelta导入mysql。cnx = MySQL .connector. #连接MySQL服务器数据库连接(用户=斯科特,=“员工”)# =得到两个缓冲游标的看台cnx.cursor(缓冲= True)抑制= cnx.cursor(缓冲= True) #查询来获得员工加入一段由两个日期查询=(“选择s.emp_no,薪水,from_date to_date从员工e”“左加入工资年代使用(列出)"WHERE to_date = DATE(' 99999-01-01 ')"INSERT INTO salary (emp_no, from_date, to_date, salary) INSERT INTO salary (emp_no, from_date, to_date, salary) INSERT INTO salary (emp_no, from_date, to_date, salary)"VALUES (%s, %s, %s, %s)") #选择获得加薪的员工。执行(query, (date(2000, 1,1), date(2000, 12,31))) #遍历curA的结果(emp_no, salary, from_date, to_date) in curA: #更新旧的并插入新的工资new_salary = int(round(salary * Decimal('1.15')) curB。execute(update_old_salary, (tomorrow, emp_no, from_date))execute(insert_new_salary, (emp_no, tomorrow, date(9999, 1,1,), new_salary)) #提交更改cnx.commit() cnx.close()