我有一个表,调用它有attr_name
列。如何使用attr_name
中每行的值创建新表?我想我很接近
conn=psycopg2.connnect("dbname='{}' user='{}' password='{}' host='{}'".format(db, username, password, host))
cur = conn.cursor()
cur.execute("SELECT attr_name FROM {}.{};".format(schema, tableName))
for row in cur:
print(row)#this works as expected
cur.execute("CREATE TABLE {}.proj_attr ({}, {},…,{});".format(newTableName))
我需要填写({}, {},...,{})
答案 0 :(得分:0)
如果要创建列:
columns = ["id serial primary key", "name text"]
您可以使用:
cur.execute("CREATE TABLE {}.proj_attr ({})".format(newTableName, ", ".join(columns))
您没有提到列的类型,但您可以使用:
columns = ["%s text" %(row[0], ) for row in cur.fetchall()]
如果你想把它们都写成文字。