QT SQL模型是否支持UPSERT?
我现在在应用程序中使用QT SQL,并且可以通过使用QSQLQUERY
来执行以下脚本(又称UPSERT):
INSERT INTO table_1(col_1,col_2,col_3) VALUES(val_1,val_2,val_3)
ON CONFLICT(col_1) DO UPDATE SET col_1=val_1,col_2=val_2,col_3=val_3
是否可以在模型/视图框架下实现此脚本,IE使用IE QSQLTableModel
?
I'm now using Qt SQL in my application, and I'm able to execute the following script (aka UPSERT) by using QSqlQuery
:
INSERT INTO table_1(col_1,col_2,col_3) VALUES(val_1,val_2,val_3)
ON CONFLICT(col_1) DO UPDATE SET col_1=val_1,col_2=val_2,col_3=val_3
Is it possible to implement this under model/view framework, i.e. using QSqlTableModel
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
no,
UPSERT
在QT
中未实现,因为它在不同的数据库系统上具有不同的语法。但是您可以以这种方式实现它:QSQLTABLEMODEL :: INSERTROWINTOTABLE
QSQLTABLEMODELPRIVATE :: EXEC
从qt源或指针黑客。这是可以为mySQL完成的方法:
完整源
No,
UPSERT
is not implemented inQt
because it has different syntax on different database systems. But you can implement it this way:QSqlTableModel::insertRowIntoTable
QSqlTableModelPrivate::exec
from qt sources or pointer-hack into it.Here's how it can be done for mysql:
Full source