Sql I';我在从多个表中删除行时遇到问题

Sql I';我在从多个表中删除行时遇到问题,sql,oracle,Sql,Oracle,我想从多个表中删除所有productid为'value'的行,因此我尝试在它们之间联接,但出现了一个错误 sql命令未正确结束 所以我问这是否真的能起作用,如果不能,有人能告诉我该怎么做吗 DELETE FROM products, products_admin, products_category, products_seller, categories USING products JOIN products_admin O

我想从多个表中删除所有productid为'value'的行,因此我尝试在它们之间联接,但出现了一个错误

sql命令未正确结束

所以我问这是否真的能起作用,如果不能,有人能告诉我该怎么做吗

    DELETE FROM 
      products, products_admin, products_category, products_seller, categories
    USING 
      products 
    JOIN 
      products_admin ON products_admin.productid = products.productid 
    JOIN 
      products_category ON products_category.productid = products.productid 
    JOIN
      products_seller on products_seller.productid = products.productid
    JOIN 
      categories on categories.productsid = products.productid
    WHERE 
      products.productid = 'value';

如果您在删除级联上使用
定义了外键,则从products表中删除将删除所有关联表中的记录。参见

每个表需要一个
删除
。像这样吗?从表_1中删除,其中第1列='abc';从表2中删除,其中第1列为“abc”;从表3中删除,其中第1列为“abc”;从表4中删除,其中第1列为“abc”;这不是只执行第一个吗?@Maha正如Jarlh所说,在Oracle中,每个表都需要一个delete语句。然后,您需要运行每个表,确保在有外键的情况下,先运行子表的删除操作,然后再运行其父表的删除操作。或者,如果存在删除级联fk,则先运行父表的删除操作。不幸的是,它不在删除级联上:(@Maha:然后,正如其他人所指出的,您需要先使用每个表一个delete来删除依赖表中的记录,然后才能从主表中删除。或者您可以更新表定义,以便在delete CASCADE中包含