如何使用pymysql从python列名和数据类型列表进行动态的create table mysql查询?

mlnl4t2r  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(333)

我有以下数据:

  1. table_name=xyz
  2. column_names=['c1', 'c2', 'c3', 'c4']
  3. column_datatypes=['VARCHAR(40)', 'BIGINT(40)', 'BIGINT(20)', 'VARCHAR(10)']

我正在从一个文件中读取。也就是说,上述列表的长度可能会有所不同。因此,我想创建一个动态的“create table”mysql查询,例如:

  1. CREATE TABLE xyz(c1 VARCHAR(40),c2 BIGINT(40),c3 BIGINT(20),c4 VARCHAR(10));

如何伪造如上所述的字符串查询(可能使用string.format())?
另外,请投票的问题(如果值得),因为我即将被阻止提出进一步的问题,因为我以前的问题没有得到任何表决。

gkn4icbw

gkn4icbw1#

干得好!

  1. import MySQLdb as mdb
  2. table_name='xyz'
  3. column_names=['c1', 'c2', 'c3', 'c4']
  4. column_datatypes=['VARCHAR(40)', 'BIGINT(40)', 'BIGINT(20)', 'VARCHAR(10)']
  5. db=mdb.connect(host='localhost',user='root',passwd='*****',db='test',port=3306)
  6. cursor=db.cursor()
  7. create_stement='create table '+table_name + '('
  8. i=0
  9. while i< len(column_names)-1 :
  10. create_stement =create_stement +column_names[i] +' '+column_datatypes[i]+' ,'
  11. i=i+1
  12. create_stement =create_stement +column_names[i] +' '+column_datatypes[i]+' )'
  13. print(create_stement)
  14. cursor.execute(create_stement)
  15. print('Done')
展开查看全部

相关问题