迁移表

 1 #1、创建8张表
 2 #creat table user_0 like user_nhy;
 3 
 4 #2、先从源表里面查到数据,然后取到phone,然后 % 8 计算出来在哪张表里,然后insert
 5 #select * from user;
 6 #[{id:1,nname:xx}]
 7 #insert into user_0 values ()
 8 
 9 #insert into user_0 select * from user where id =1;
10 
11 
12 from day8.homework import utlis
13 def create_table_more(src_table_name,number=8): #user_0 user_1
14     print("开始创建表")
15     for i in range(number):
16         new_table_name = "%s_%s" % (src_table_name,i)
17         sql = "create table if not exists %s like %s;" % (new_table_name,src_table_name)
18         # sql = "drop table %s" % new_table_name
19         print("创建表的sql ",sql)
20         utlis.op_mysql(sql)
21     print("分表创建完成")
22 
23 def insert_data(src_table_name,number=8):
24     sql = "select * from %s ; " % src_table_name
25     all_data = utlis.op_mysql(sql,data_type=2)
26     # print(all_data[0].keys())
27     # return
28     for data in all_data:
29         table_index = int(data.get("phone")) % number
30         table = "%s_%s" % (src_table_name,table_index)
31         insert_sql = 'insert into %s select "",nick, gender, birthday, email, phone, password, qq, address, status, pay_status, avatar, register_time, last_login_ip, last_login_time from %s where phone = "%s"; ' % (table,src_table_name,data.get("phone"))
32         utlis.op_mysql(insert_sql)
33         print("数据 %s 迁移完成 " % data)
34     print("所有数据迁移完成!")
35 
36 if __name__ == '__main__':
37     create_table_more("user_nhy")
38     insert_data("user_nhy")

 

posted @ 2021-07-02 16:15  等待iing  阅读(96)  评论(0)    收藏  举报