2014-10-19 49 views
0

所以我有變量命名爲「racenumber」,我想作爲一個新的表我創建的名稱使用。Python的MySQL的創建和使用的變量名名新表

下面的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() 
+0

做你想做的表名實際上是「racenumber」? – 2014-10-19 01:41:47

+0

都能跟得上這將是一個變量這就是動態地改變。 – user2949513 2014-10-19 01:58:16

+0

沒有我的意思是你希望它實際上是變量的名字嗎?所以對於這種情況,你希望表名是'racenumber'?或者它裏面的價值? – 2014-10-19 01:58:47

回答

0

由於您正在使用數字作爲表名,因此您需要在表名稱周圍使用反碼。 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() 

下面是從文檔的鏈接::我在這裏使用SQL小提琴測試爲例http://dev.mysql.com/doc/refman/5.0/en/identifiers.html

特別是這一行:

標識符可以以數字開始,但除非報價不得僅由數字

+0

非常好,謝謝了現在的工作。 – user2949513 2014-10-19 02:04:09

+0

不客氣。很高興它爲你工作。 – Gohn67 2014-10-19 02:05:02