我有一个非常棘手的问题:
我在Qt中有这个Qsqlite连接,我在主数据库中有一些X表。我用ATTACH添加了另一个数据库,它碰巧有一个同名的表(X)。
So -> mainDB: X has 3 columns, syncDB: X has 19 columns
我想要做的只是获取syncDB表的三列,它们对应于mainDB表的三列。
所有在Windows上运行得很好(qt 5.something),但是在Linux上(Ubuntu,Qt版本4.8),
我遇到了意想不到的行为:
当我发出以下查询时:
qry.exec("INSERT OR IGNORE INTO X SELECT col1, col2, col3 FROM sync.X");
(从sync.X中取col1,col2,col3并将其放在main.X中(只有三列)
然而在Linux上它不起作用:它说
表X有19列,但只提供了3个值。
当我明确输入main.X时,它没有说明这样的表。
发生了什么事?
答案 0 :(得分:0)
这两个错误都表明X
数据库中没有main
表。
当打开数据库时没有使用正确的目录/文件名时,通常会发生这种情况,在这种情况下,SQLite会很乐意创建一个新的空数据库。