qt中使用sqlite创建表失败

问题遇到的现象和发生背景

qt中使用sqlite创建表失败

问题相关代码,请勿粘贴截图
部分代码
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName(mHistoryDB);
if(db.open())
{
    qDebug()<<"Database History Opened";

 QSqlQuery sql_query;
 QString create_sql = "create table if not exists Customer (id INTEGER  primary key AUTOINCREMENT,\
                                                name varchar(100), \
                                                type int ,\
                                                vaccine int,\
                                                reason varchar(100))"; //创建数据表
    sql_query.prepare(create_sql);
    sql_query.exec();                   //创建表

    QString sql = "insert into Customer values(NULL,\"%1\",%2,%3,\"%4\")";        //插入数据
    sql = sql.arg(p->name).arg(p->type).arg(p->vaccine).arg(p->reason);    //这些参数的格式验证过没有问题
    sql_query.prepare(sql);
    if(!sql_query.exec())
    {
        qDebug()<<sql_query.lastError();
    }
    else
    {
        qDebug()<<"插入记录成功History";
    }
}
db.close();

}

运行结果及报错内容

Database History Opened
QSqlError("", "Unable to fetch row", "No query")

我的解答思路和尝试过的方法
我想要达到的结果

你这个不是建表报错,应该是插入数据的时候报错,你先插入一条写死的数据看看能不能写进去,可能是你的插入语句语法不对或者sql语句中的数据类型跟表中的数据类型不匹配