2

我一直在努力弄清楚如何从 RENTALLINE_1 中的 RENTALLINE_ID 中删除行,然后从 RENTAL_1 中删除 RENTAL_ID。我有 select 语句,可以找到我要删除的确切值。它会查找超过 3 年的记录。我正在使用带有命令行界面的 SQLPlus。

select rentalline_1.rentalline_ID,
       rentalline_1.tool_store_id,
       rentalline_1.rental_id,
       rentalline_1.qty,
       rental_1.datein
from rental_1
  inner join rentalline_1 on rental_1.rental_id = rentalline_1.rental_id
where MONTHS_BETWEEN (SYSDATE, DATEIN) > (36)

提前感谢您的帮助!

4

2 回答 2

1

您可以向数据库添加约束吗?如果您有一个外键约束,例如:

ALTER TABLE rentalline_1 ADD CONSTRAINT fk_rental FOREIGN KEY (rental_id) REFERENCES rental_1 (rental_id) ON DELETE CASCADE;

然后删除rental_1表中的行将导致相应的行rentalline_1被自动删除。

于 2012-11-25T12:34:32.973 回答
0

我无法在这里测试 oracle 数据库,但我希望

DELETE rental_1, rentalline_1
from rental_1
  inner join rentalline_1 on rental_1.rental_id = rentalline_1.rental_id
where MONTHS_BETWEEN (SYSDATE, DATEIN) > (36)

你也可以试试看

DELETE from
( SELECT * 
from rental_1
  inner join rentalline_1 on rental_1.rental_id = rentalline_1.rental_id
where MONTHS_BETWEEN (SYSDATE, DATEIN) > (36) )
于 2012-11-25T12:26:37.743 回答