简体   繁体   English

在一个查询中从两个表中删除而不加入

[英]Delete from two tables in one query without joining

I have two tables我有两张桌子

@Entity
data class Pet(val name, val creationTime)

@Entity
data class Item(val creationTime)

These two entities are unrelated.这两个实体是不相关的。

I would like to make a query that deletes from both tables by creationTime .我想做一个查询,通过creationTime从两个表中删除。 How can I do this?我怎样才能做到这一点?

@Dao
interface Organizer {
    @Query("") 
    fun deleteAllTables(val creationTime)
}

As an option to all-in-one-query you can use two queries in one transaction ( documentation ).作为多合一查询的一个选项,您可以在一个事务中使用两个查询( 文档)。

I guess it would be logically the same as you want.我想这在逻辑上与您想要的相同。

@Dao
interface Organizer {
    @Query("delete from pets where creationTime := creationTime") 
    fun deletePets(val creationTime)
    
    @Query("delete from items where creationTime := creationTime") 
    fun deleteItems(val creationTime)
    
    @Transaction
    fun deleteAllTables(val creationTime) { 
        deletePets(creationTime)
        deleteItems(creationTime)
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM