【问题标题】:Dynamically create MySQL table with python?用python动态创建MySQL表?
【发布时间】:2018-05-03 15:19:32
【问题描述】:

所以我有一个包含 200 多列的数组。我将如何循环并使用pymysql 创建一个表?

目前连接如下:

import pymysql

connection = pymysql.connect(
    host='my_host_name',
    user='my_username',
    password='my_password',
    port= 0000,
    database='my_db')

columns = ['firstname', 'lastname', 'email', .... ]
cursor = connection.cursor()
sql = 'CREATE TABLE my_table (
       # For each column in columns                       
                             )'
cursor.execute(sql)

编辑:我将首先遍历列并附加其适当的数据类型

【问题讨论】:

  • 您希望它们都属于同一类型,例如VARCHAR(255) 或类似的吗?
  • 您还应该至少指定每列的数据类型,以便能够正确创建表。
  • @GordThompson 不。我想我必须先循环获取数据类型并将其附加到数组中
  • @Vincent - 那么也许你应该有一个字典而不是名称列表,其中键是列名,值是列类型。

标签: python mysql pymysql


【解决方案1】:

您可以使用join 循环遍历所有列:

columns = ['firstname VARCHAR(255)', 'lastname VARCHAR(255)'] # and so on
sql = 'CREATE TABLE my_table (' + ', '.join(columns) + ');'

请注意,结果表甚至不是 1NF(第一范式),因为它没有 PRIMARY KEY。最好将一列或多列设置为PRIMARY KEY,以减少不一致的风险。

【讨论】:

    猜你喜欢
    • 2016-05-10
    • 2017-10-05
    • 1970-01-01
    • 2018-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-02
    相关资源
    最近更新 更多