sqlite现在有CTE,而
documentation表示可以将它与插入,更新和删除查询一起使用 – 但只提供了select语句的示例.
我可以通过insert-select弄清楚CTE如何应用于插入;但是如果没有from-clause,我们如何在更新或删除中使用它们呢?
CTE可用于子查询:
WITH NewNames(ID,Name) AS (...) UPDATE MyTable SET Name = (SELECT Name FROM NewNames WHERE ID = MyTable.ID); WITH IDsToDelete AS (...) DELETE FROM MyTable WHERE ID IN IDsToDelete;