2014-01-20 4 views
-2

다음 코드 (B4A)를 사용하여 이전 CUSTOMERS 테이블을 삭제 한 다음 새 버전의 이름을 바꿉니다. 그러나, 나는 항상 빈 (새로운) CUSTOMERS 테이블로 끝난다. 이름 바꾸기를하지 않으면 CUSTOMERS_NEW 테이블이 올바른 행 수 (1825)로 완벽하게 확인됩니다.이름 바꾸기 SQLite 테이블이 작동하지 않습니다.

sqlOBT.ExecNonQuery("DROP TABLE customers")          
sqlOBT.ExecNonQuery("ALTER TABLE newcustomers RENAME TO customers") 
sqlobt.close 

나는 그것이 왜 작동하지 않는 지에 의아해합니다.

+0

테이블 이름이'newcustomers' 또는'customers_new'입니까? – laalto

+0

이전 테이블은 고객이고 새 테이블은 newcustomers입니다. – user2940737

답변

1

SQLite는 테이블 명명 규칙에서 매우 특별합니다. 당신이 시도 할 수 :

sqlOBT.ExecNonQuery("ALTER TABLE 'newcustomers' RENAME TO 'customers'") 

또한, 당신은 BEGIN/COMMIT TRANSACTION 명령을 샌드위치에 ALTER TABLE 명령을해야 할 수도 있습니다. sqlite3를 사용하여, 코드를 다음과 같이 보일 수 있습니다 다음 sqlite3 모듈이 자동으로 어떤 경우에는 거래 있지만 다른 열립니다 이후

sqlOBT.ExecNonQuery("BEGIN TRANSACTION") 
sqlOBT.ExecNonQuery("ALTER TABLE 'newcustomers' RENAME TO 'customers'") 
sqlOBT.ExecNonQuery("COMMIT TRANSACTION") 

python에서 나는 경우가 수 있도록이 이해합니다. 설명서는 here입니다.

관련 문제