对oracle当中子查询建表,merge操作,创建,修改,删除约束,创建使用触发器的复习练习(一)...

/** 对oracle当中子查询建表,merge操作,创建,修改,删除约束,创建使用触发器的复习练习**/
/**  
本例子的作用是熟悉使用oracle当中的触发器:有两张表  productinfo:产品表,productinfo_info:产品推荐表。
其中产品推荐表里面只有部分产品表里面的信息(当然不是所有的产品都推荐),这两张表的字段结构完全一样。
要实现:当管理者修改产品表里面的某个纪录的时候,如果该记录在产品推荐表里面也存在(根据productIdid判断),
则触发器自动修改产品推荐表里面的这条记录以达到跟产品表里面的记录保持一致的效果。
**/

--新建了一个产品信息表
create table productinfo(
productId varchar2(20) unique,
productName varchar2(10) not null,
productPrice varchar2(10) primary key,
productAddress varchar2(10) );

--练习使用sql修改约束和字段大小
alter table productinfo modify 
productAddress varchar2(20) not null;

--练习使用sql删除,修改,新增表里面的约束
alter table productinfo
--drop constraint sys_c009964;(删除的是productPrice为主键的约束)
--modify productPrice  constraint product_price_not  not null;(给productPrice增加非空的约束)
--add constraint productin_address_check check(length(productAddress)>5);(给地址增加check约束)
add constraint productinfo_pk  primary key(productId);--增加productid为主键的约束

--查看所有的约束名字,约束的状态(是否启用) ,约束的类型,约束是建立在哪个列上面的
select c.constraint_name, c.status, c.constraint_type,n.COLUMN_NAME
from user_constr  select * from productinfo_bak ;
aints c, user_cons_columns n
where c.CONSTRAINT_NAME = n.CONSTRAINT_NAME and c.TABLE_NAME= 'PRODUCTINFO';

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值