sql - oracle sql中删除行的顺序
问题描述
我有这个应该可以工作的代码
delete from
(
select oi.* from orderinfo oi
where oi.order_status = 'Выполнен'
and
oi.rowid in
(
select orderinfo.rowid from orderinfo
inner join ordered_medicines om on oi.order_id = om.order_id and oi.order_status = 'Выполнен'
inner join medicine_instances mi on om.medicine_id_instance = mi.medicine_id_instance
));
但问题是由于主键我无法开始从 orderInfo (ORA-02292) 中删除,我应该删除 oredered_medicines 中的第一个,然后才从 orderinfo 中删除,我试过这个:
Delete from (
select om.* from ordered_medicines om
where oi.order_id = 'Выполнен'
and
om.rowid in (
select ordered_medicines.rowid from ordered_medicines
inner join orderinfo oi on oi.order_id = om.order_id
)
);
但它不起作用,我认为是因为 oi。尚未定义。那么我可以根据 orderInfow 单元格的状态首先从ordered_medicines 中删除,然后才从irderinfo 中删除?
解决方案
推荐阅读
- r - Googlesheets 配额限制问题 - 可能无法使用 API 密钥
- javascript - 如果一个异步 Vuex 操作运行两次,等待调用之后的代码可以随机运行吗?
- javascript - 为什么 Firebase-Email-Verification 不起作用?
- javascript - 在另一个可观察对象中使用数据,然后将结果作为其他可观察对象返回
- php - 无法解析 razropay 的 webhook
- excel - Excel:根据ID合并列中的内容
- java - NoResponse Received - Smack MUC Presence(进入房间)
- web-scraping - 带有 Scrapy 的 Celery 不解析 CSV 文件
- c# - 为什么我不能在方法之外创建实例
- chess - 有没有办法在 Stockfish 中查看失误、错误、错过的将死