繁体   English   中英

在 Oracle 11g 中使用连接条件从两个表中删除数据

[英]Delete data from two tables by using join condition in Oracle 11g

DELETE tbemp.emp_id, 
        tbadd.emp_id 
FROM  TBEMPLOYEE tbemp 
JOIN TBADDRESS tbadd ON (tbemp.emp_id=tbadd.emp_id)

Oracle 11g 不会编译它

此删除语句在 Oracle 中无效。 还有其他要删除的语句,一个可以是

DELETE FROM TBEMPLOYEE tbemp 
WHERE EXISTS (select 'x' 
                from TBADDRESS 
               where tbemp.emp_id=tbadd.emp_id);

您不能通过连接直接从多个表中删除。

但是您可以使用ON DELETE CASCADE强制执行外键约束。

ALTER TABLE tbaddress ADD CONSTRAINT fk_emp FOREIGN KEY (emp_id) REFERENCES tbemployee (emp_id) ON DELETE CASCADE;

DELETE FROM tbemployee; -- This also deletes referencing keys from tbaddress

暂无
暂无

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

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