2014-04-14 3 views
1

에서 CREATE TABLE ... (column DEFAULT?) 절의 매개 변수 사용 매개 변수 대체를 사용하여 특정 열의 기본값을 지정하여 CREATE STATEMENT 절을 실행하려면 Python을 사용하고 싶습니까? (그래서 파이썬 타입으로부터 기본값을 안전하게 지정할 수있다).Python sqlite3 db-api

select 또는 유사한 문에서 매개 변수 문을 사용할 때 제대로 작동하지만 작동하지 않는 것 같습니다. 예상대로

:

>>> list(sqlite3.connect('sensemap.sql3').cursor().execute('select ?', (101,))) 
[(101,)] 

예기치 않은 : 예를 들어

>>> sqlite3.connect('sensemap.sql3').cursor().execute('create table mytable (mycolumn default ?)', (101,)) 
Traceback (most recent call last): 
    File "<console>", line 1, in <module> 
OperationalError: near "?": syntax error 

왜 그렇습니까? 내가 시도하고있는 것이 가능한가?

답변

1

모든 스키마 개체의 원래 SQL 문은 데이터베이스에 저장됩니다 (시도 SELECT sql FROM sqlite_master). 간단한 텍스트 값을 사용하면 매개 변수 값을 기억할 수 없기 때문에 CREATE xxx 문에 매개 변수를 사용할 수 없습니다.

관련 문제