Python mysql使用变量名创建并命名新表

时间:2014-10-19 01:33:28

标签: python mysql mysql-python

所以我有变量命名' racenumber'我想用它作为我正在创建的新表的名称。

下面的python代码目前无效。关于问题在哪里的任何想法?

racenumber = 10

cursor = db.cursor()
cursor.execute("""CREATE TABLE %s (ID INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(50) DEFAULT NULL,    
PRIZE_TOTAL VARCHAR(50) DEFAULT NULL, STRENGTH VARCHAR(50) DEFAULT NULL, URL VARCHAR(50) DEFAULT  
NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1""" % (racenumber))

db.commit()
db.close()

1 个答案:

答案 0 :(得分:0)

由于您使用表名作为数字,因此需要在表名周围使用反向标记。我在这里使用SQL Fiddle测试了一个示例:http://sqlfiddle.com/#!2/c38e57

racenumber = 10

cursor = db.cursor()
cursor.execute("""CREATE TABLE `%s` (ID INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(50) DEFAULT NULL,    
PRIZE_TOTAL VARCHAR(50) DEFAULT NULL, STRENGTH VARCHAR(50) DEFAULT NULL, URL VARCHAR(50) DEFAULT  
NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1""" % (racenumber))

db.commit()
db.close()

以下是文档中的链接:http://dev.mysql.com/doc/refman/5.0/en/identifiers.html

特别是这一行:

  

标识符可以以数字开头,但除非引用可能不仅仅包含数字