删除2个相关联表中的数据(主从表)的几种方案:
- 使用触发器,删除主表数据时,触发删除从表中的数据;
- 使用存储过程,先删除从表记录,再删除主表中的数据;
- 直接进行操作,建立一个事务,先删除从表数据,再删除主表中的数据;
我写的存储过程,及测试语句:
CREATE OR REPLACE PROCEDURE MY_DELETE(ID NUMBER, QTYPE VARCHAR2, FLAG OUT VARCHAR2) IS
BEGIN
IF QTYPE != 'answer' THEN
DELETE Q_ITEMS WHERE QID = ID;
DELETE QUESTIONS WHERE QID = ID;
ELSE
DELETE QUESTIONS WHERE QID = ID;
END IF;
FLAG := 'Y';
END;
SELECT * FROM Q_ITEMS
SELECT * FROM QUESTIONS
DECLARE
VS VARCHAR2(2);
BEGIN
MY_DELETE(21,'answer', VS);
DBMS_OUTPUT.PUT_LINE(VS);
END;
分享到:
相关推荐
表结构查询,主外键关联表名查询,
oracle设置主外键即主键序列自动增长
就是为程序员提供了一条可以查询表的主键被其他表引用为外键情况的查询
oracle查看主外键约束关系,根据此SQL可以进行主外键约束的查询!
Oracle中表的外键是保证系统参照完整性的手段,在实际应用系统中,开发者为了保证系统的完整性,一般要定义大量的外键。如果外键的命名不规范,如采用系统自动生成的名称,则在以后的系统运行维护中会造成很大的麻烦...
oracle_创建表空间、表、主键、外键、序列.docx
在某个业务受理子系统BSS中, --客户资料表 create table customers ( customer_id number(8) not null, -- 客户标示 city_name varchar2(10) not null, -- 所在城市 customer_type char(2) not null, -- 客户...
ORACLE ebs 各个模块的表之间的关联关系,方便大家熟悉ebs系统的表结构
如何在oracle中查询所有用户表的表名、主键名称、索引、外键等
WHERE 表1.A = 表2.A) WHERE EXISTS (SELECT 1 FROM 表1 WHERE 表1.A = 表2.A); 尤其注意最后的外层where条件尤为重要,是锁定其批量更新数据的范围。 方法二: MERGE INTO 表2 USING 表1 ON (表2.A = 表1.A...
Oracle ebs AP基表和总账关联表结构Oracle ebs AP基表和总账关联表结构
主要介绍了Oracle中多表关联批量插入,批量更新与批量删除操作,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
根据主外键关系递归生成drop语句,请在plsql developer中执行
在Oracle中若删除一个不存在的表,如 “DROP TABLE tableName”,则会提示: ORA-00942:表或视图不存在 若在程序中执行该语句则会报异常,这就需要我们在删除表前先判断该表是否存在,若存在则删除. DECLARE num NUMBER;...
oracle创建表空间、表、主键、外键、序列
oracle定时删除表空间的数据并释放表空间(oracle编程高手总结编写)
Oracle中表的外键是保证系统参照完整性的手段,而参照完整性是指分布在两个表中的列所满足的具有主从性质的约束关系。外键涉及到两个表,其中一个称之为父项表,另一个称之为子项表。 父项表(parent table)是...
例如: 两表(多表)关联update -- 仅在where字句中的连接 --这次提取的数据都是VIP,且包括新增的,所以顺便更新客户类别 update customers a -- 使用别名 set customer_type='01' --01 为vip,00为普通 where ...
主键和外键的区别 主键是定义一个表中起主要作用的数据项,这些数据项的数据在表中是唯一的,同时系统按主键为表建立索引。...既没有在另一个表的主键数据中出现的数据,不允许在这个表的外键数据项中出现。
删除oracle中用户下所有的表,不是系统用户哦!不然会删掉系统的数据表