c++ - 如何在 SQLite 中列出临时表/ View ?

标签 c++ c sqlite

我有一个函数,每当新数据库连接到连接时,它都会尝试删除 View 并重建它。问题(好吧,更令人烦恼)是它第一次尝试删除不存在的 View 。由于存在与 View 同名的永久表,我收到 sqlite 错误:使用 DROP TABLE 删除表相册。因此,我想在尝试删除 View 之前查询数据库以检查 View 是否存在。

注意:当前查询已使用DROP VIEW IF EXISTS,但这并不能解决问题。另外,我检查了 sqlite_master 并且似乎没有任何对临时表/ View 的引用。

最佳答案

maintemp 数据库是不同的,因此您可以只使用数据库名称:

CREATE TABLE Albums(x);
CREATE TEMPORARY VIEW Albums AS SELECT * FROM Albums;
DROP VIEW IF EXISTS temp.Albums;
DROP VIEW IF EXISTS temp.Albums;

临时对象 are managed in sqlite_temp_master .

关于c++ - 如何在 SQLite 中列出临时表/ View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17055091/

相关文章:

c++ - 存储流数据的最佳方式

c++ - 基类引用 - 为其分配其他类型

c - fork 和线程有什么区别?

c - strcpy 和 "="有什么区别?

Sqlite Cursor 在 BlackBerry OS 6 中中断

android - 在 listView 中反转整个列表

c++ - std::vector 初始化类成员

c++ - 标准 C++ 中的字符串输入

c++ - 在 C 中定义整数解析为无符号字符,或在数学运算的情况下产生意外行为

java - 数据库.sqlite.SQLiteException