qt清空数据库表数据保留表结构的一种方法

时间:2021-08-13 05:04:12

查阅了一些资料,很多人的意见是备份一个只包含数据库表结构的backup文件,然后删掉数据库,然后恢复。
正在我的实践中是有点问题的,因为使用数据库的人不止我一个,人家数据库不让我删除。而且我执行的时候出了很多我一时解决不了的错误(这才是原因),所以我智能找点别的办法,稍微记录下。
我是用的是postgre数据库,其他的应该差不多的。
方法就是找到你库里的所以表,然后级联删除表的内容(级联删除,级联删除,级联删除)。再附上几行代码:

QString sqlStr= "select tablename from pg_tables where schemaname='public' ;//少个引号,加上编辑有点问题
QSqlQuery query(sqlStr,connectDB(dbName));
QList<QString> databaseNameList;
while(query.next())
{
databaseNameList.push_back(query.value(0).toString());
}
for(int i=0;i<databaseNameList.size();i++)
{
QString truncateSql="truncate table "+databaseNameList.at(i)+" CASCADE";
}

关于truncate命令可以参考文章这里写链接内容