重命名SQLite表不工作

重命名SQLite表不工作,sqlite,alter,Sqlite,Alter,我正在使用以下代码(在B4A中)删除旧的CUSTOMERS表,然后重命名其新版本。然而,我总是得到一张空白(新)客户表。如果我不重新命名CUSTOMERS\u,那么新表的行数是正确的(1825) 我对它为什么不起作用感到困惑。SQLite的表命名约定可能非常特殊。你可以试试: sqlOBT.ExecNonQuery("ALTER TABLE 'newcustomers' RENAME TO 'customers'") 此外,您可能需要将ALTER TABLE命令与BEGIN/COMMIT TR

我正在使用以下代码(在B4A中)删除旧的CUSTOMERS表,然后重命名其新版本。然而,我总是得到一张空白(新)客户表。如果我不重新命名CUSTOMERS\u,那么新表的行数是正确的(1825)


我对它为什么不起作用感到困惑。

SQLite的表命名约定可能非常特殊。你可以试试:

sqlOBT.ExecNonQuery("ALTER TABLE 'newcustomers' RENAME TO 'customers'")
此外,您可能需要将
ALTER TABLE
命令与
BEGIN
/
COMMIT TRANSACTION
命令夹在一起。使用
sqlite3
,您的代码可能如下所示:

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

python
中,我理解这种情况,因为在某些情况下,
sqlite3
模块会自动打开事务,而在其他情况下则不会。可以找到文档。

是表名
newcustomers
customers\u new
?旧表是customers,新表称为newcustomers。
sqlOBT.ExecNonQuery("BEGIN TRANSACTION")
sqlOBT.ExecNonQuery("ALTER TABLE 'newcustomers' RENAME TO 'customers'")
sqlOBT.ExecNonQuery("COMMIT TRANSACTION")