2014-10-19 2 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'로 지정 하시겠습니까 ?? –

+0

아니요, 변수가 동적으로 변경됩니다. – user2949513

+0

내 말은 실제로 변수의 이름이되고 싶습니까? 이 경우 테이블 이름을 'racenumber'로 지정 하시겠습니까? 또는 그것의 가치? –

답변

0

테이블 이름에 숫자를 사용하고 있으므로 테이블 이름 주위에 역 따옴표를 사용해야합니다. 여기

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://sqlfiddle.com/#!2/c38e57이 문서에서 링크입니다 : : 여기 SQL의 바이올린을 사용하는 예제를 테스트 http://dev.mysql.com/doc/refman/5.0/en/identifiers.html

특히이 라인 :

숫자로 시작하지만, 인용하지 않는 한하지 않을 수 있습니다

식별자 숫자만으로 구성됩니다.

+0

훌륭합니다. – user2949513

+0

당신을 진심으로 환영합니다. 다행이 당신을 위해 일하고 있습니다. – Gohn67

관련 문제