我试图删除最高价格的product_price,但我收到此错误; 我运行这个查询..
delete from tbl_product where product_price=(select max(product_price) from tbl_product)
并收到此错误....
DELETE语句与REFERENCE约束冲突 “fk_orderLineNew”。冲突发生在数据库中 “Db_customerProduct”,表“dbo.tbl_orderLine”,列'product_id'。
声明已经终止。
如何删除这个..... !!!
答案 0 :(得分:1)
您要删除的行(产品)在其他表(显然是订单行表)中有一些记录。这就是它无法删除的原因。
答案 1 :(得分:0)
您有一个名为“fk_orderLineNew”的引用约束。 这告诉您,如果tbl_orderLine中有product_id,那么product_id也必须在tbl_product中。您不能只删除其中一个,您必须从每个表中删除。 所以你的删除查询将是下一个:
DELETE
FROM tbl_orderLine
WHERE product_id IN (
SELECT product_id
FROM tbl_product
WHERE product_price = (
SELECT max(product_price)
FROM tbl_product
)
)
DELETE
FROM tbl_product
WHERE product_price = (
SELECT max(product_price)
FROM tbl_product
)
答案 2 :(得分:-2)
delete from tbl_product where product_price=(select max(product_price) from tbl_product)
并收到此错误....
The DELETE statement conflicted with the REFERENCE constraint "fk_orderLineNew". The conflict occurred in database "Db_customerProduct", table "dbo.tbl_orderLine", column 'product_id'
由于您在“tbl_orderLine”表中提供了参照完整性,因此您遇到了上述错误。 如果要删除数据,则需要删除参照完整性。