Room SQLITE 使用 JOINS 从多个表中删除查询
Room SQLITE Delete query from multiple tables using JOINS
大家好,我正在将我的 table 和查询从 mysql 移动到 andorid 应用程序中的内部 SQLITE 数据库。
当我将我的删除查询复制到我的 DAO 时,它抛出了一个错误:
DELETE moodBeforeTable, moodAfterTable
FROM moodBeforeTable
JOIN moodAfterTable
ON moodAfterTable.cbtId = moodBeforeTable.cbtId
WHERE moodBeforeTable.cbtId =: cbtId";
第一个单词 moodBeforeTable 带有红色下划线,IDE 表示它期待 FROM。它似乎不喜欢 mysql 语法。我不确定如何重写此查询。我还有另一个 table 的第二个删除。是否可以通过一个方法调用执行所有这些删除操作?
基本上,当用户单击删除按钮时,它需要一次单击从三个单独的 table 中删除记录。我们可以在 DAO 中一起进行 UNION 查询吗?如果可以的话,有人可以给我一个简单的例子来说明如何写这个,因为语法与我习惯的不同
通过进一步研究,我得出结论,sqlite 不允许同时从多个表中删除查询。
为了解决这个问题,我简单地设置了三个单独的删除查询来定位我想从中删除数据的每个表。当用户单击删除按钮时,DAO 中的所有 3 个删除查询都在 AsyncTask 中执行。我对此进行了全面测试,它运行良好。
我希望这个回答对以后的其他人有所帮助。
大家好,我正在将我的 table 和查询从 mysql 移动到 andorid 应用程序中的内部 SQLITE 数据库。
当我将我的删除查询复制到我的 DAO 时,它抛出了一个错误:
DELETE moodBeforeTable, moodAfterTable
FROM moodBeforeTable
JOIN moodAfterTable
ON moodAfterTable.cbtId = moodBeforeTable.cbtId
WHERE moodBeforeTable.cbtId =: cbtId";
第一个单词 moodBeforeTable 带有红色下划线,IDE 表示它期待 FROM。它似乎不喜欢 mysql 语法。我不确定如何重写此查询。我还有另一个 table 的第二个删除。是否可以通过一个方法调用执行所有这些删除操作?
基本上,当用户单击删除按钮时,它需要一次单击从三个单独的 table 中删除记录。我们可以在 DAO 中一起进行 UNION 查询吗?如果可以的话,有人可以给我一个简单的例子来说明如何写这个,因为语法与我习惯的不同
通过进一步研究,我得出结论,sqlite 不允许同时从多个表中删除查询。
为了解决这个问题,我简单地设置了三个单独的删除查询来定位我想从中删除数据的每个表。当用户单击删除按钮时,DAO 中的所有 3 个删除查询都在 AsyncTask 中执行。我对此进行了全面测试,它运行良好。
我希望这个回答对以后的其他人有所帮助。