维护数据库表、字段常用语句

--查表数据库结构
SELECT * FROM all_tables WHERE OWNER = '****UAT' ;--查表名
SELECT * FROM user_tab_columns WHERE column_name='***_ID';--查列名
--建立主外键关系
alter table 子表
	add constraint 子表名_主表名_字段名_FK
		foreign key (主字段名) references 主表名

--加唯一约束
alter table 表名 modify WOH_CODE unique;
--修改数据类型
alter table 表名 modify WOH_CODE number(9) default 0 not null ;

--内联更新
UPDATE (
select t1.STOCK_ALTER_H_ID, t1.SAD_ENTITY_ID  c1, t2.WORK_ORDER_H_ID  c2 from1 t1 left join2 t2 on t1.SAD_ORDER_CODE = t2.WOH_CODE
    )t
set c1 =c2 where 1=1;

--1.查看锁表进程SQL语句:
--被锁对象表、数据库对象表、数据session表关联来获取被锁对象对应的是那个session;
select sess.sid,
sess.serial#,
lo.oracle_username,
lo.os_user_name,
ao.object_name,
lo.locked_mode
from v$locked_object lo,
dba_objects ao,
v$session sess
where ao.object_id = lo.object_id and lo.session_id = sess.sid;

--2.查看锁表进程SQL语句:
select * from v$session t1, v$locked_object t2 where t1.sid = t2.SESSION_ID;

--3.查看导致锁表的sql语句是那一条
select l.session_id sid,
s.serial#,
l.locked_mode,
l.oracle_username,
s.user#,
l.os_user_name,
s.machine,
s.terminal,
a.sql_text,
a.action
from v$sqlarea a, v$session s, v$locked_object l
where l.session_id = s.sid
and s.prev_sql_addr = a.address
order by sid, s.serial#;

--4.杀掉锁表进程:
--通过上面的查询获取SID和serial#,替换下面的x,y,就可以解除被锁的状态
alter system kill session 'x,y';

测试未建立主外键关系1 因为未删除滚动垃圾数据

alter table PLAN_DAY_ROLL
	add constraint PLAN_DAY_ROLL_ORDER_WORKSHOP_ORDER_WORKSHOP_ID_FK
		foreign key (ORDER_WORKSHOP_ID) references ORDER_WORKSHOP
/

测试未建立主外键关系2 滚动与机台操作计划 因为未删除 因为 MACHINE_MASTER_PLAN 未删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值