day5_查看表主外键关系

Posted 小小5呀

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了day5_查看表主外键关系相关的知识,希望对你有一定的参考价值。


【外键--通过子表查询】
SELECT ‘父表:‘||USER_INDEXES.TABLE_NAME||‘  ‘||‘父表列:‘||USER_IND_COLUMNS.COLUMN_NAME||‘   ‘||‘子表:‘||USER_CONS_COLUMNS.TABLE_NAME||‘   ‘||‘子表列:‘||USER_CONS_COLUMNS.COLUMN_NAME  
FROM USER_CONSTRAINTS,USER_CONS_COLUMNS,USER_INDEXES,USER_IND_COLUMNS where USER_CONSTRAINTS.CONSTRAINT_NAME = USER_CONS_COLUMNS.CONSTRAINT_NAME and 
USER_CONSTRAINTS.R_CONSTRAINT_NAME = USER_INDEXES.INDEX_NAME and USER_INDEXES.INDEX_NAME = USER_IND_COLUMNS.INDEX_NAME and CONSTRAINT_TYPE = ‘R‘ and USER_CONS_COLUMNS.TABLE_NAME=‘YX_PRIZE_WIN_AREA‘;


【外键--通过父表查询】
SELECT ‘父表:‘||USER_INDEXES.TABLE_NAME||‘  ‘||‘父表列:‘||USER_IND_COLUMNS.COLUMN_NAME||‘   ‘||‘子表:‘||USER_CONS_COLUMNS.TABLE_NAME||‘   ‘||‘子表列:‘||USER_CONS_COLUMNS.COLUMN_NAME  
FROM USER_CONSTRAINTS,USER_CONS_COLUMNS,USER_INDEXES,USER_IND_COLUMNS where USER_CONSTRAINTS.CONSTRAINT_NAME = USER_CONS_COLUMNS.CONSTRAINT_NAME and 
USER_CONSTRAINTS.R_CONSTRAINT_NAME = USER_INDEXES.INDEX_NAME and USER_INDEXES.INDEX_NAME = USER_IND_COLUMNS.INDEX_NAME and CONSTRAINT_TYPE = ‘R‘ and USER_INDEXES.TABLE_NAME=‘YX_AC_LOTTERY_MODEL‘;



【查询主键】
SELECT 
  ‘约束名:‘||USER_CONS_COLUMNS.CONSTRAINT_NAME||‘  ‘||
  ‘表名:‘||USER_CONS_COLUMNS.TABLE_NAME||‘  ‘||
  ‘列名:‘||USER_CONS_COLUMNS.COLUMN_NAME||‘  ‘||
  ‘位置:‘||USER_CONS_COLUMNS.POSITION 
FROM  USER_CONSTRAINTS,USER_CONS_COLUMNS 
WHERE USER_CONSTRAINTS.CONSTRAINT_NAME = USER_CONS_COLUMNS.CONSTRAINT_NAME and CONSTRAINT_TYPE = ‘P‘ 
and USER_CONS_COLUMNS.TABLE_NAME=‘‘;




其他约束
SELECT 
  ‘约束名:‘||USER_CONS_COLUMNS.CONSTRAINT_NAME||‘  ‘||
  ‘表名:‘||USER_CONS_COLUMNS.TABLE_NAME||‘  ‘||
  ‘列名:‘||USER_CONS_COLUMNS.COLUMN_NAME||‘  ‘||
  ‘位置:‘||USER_CONS_COLUMNS.POSITION||‘  ‘||
  CONSTRAINT_TYPE,
  SEARCH_CONDITION
FROM
  USER_CONSTRAINTS
    JOIN USER_CONS_COLUMNS
    ON (USER_CONSTRAINTS.CONSTRAINT_NAME
        = USER_CONS_COLUMNS.CONSTRAINT_NAME)
WHERE
  CONSTRAINT_TYPE IN (‘C‘, ‘V‘, ‘O‘);



【让约失效、生效】

alter table EMP disable constraint PK_EMP_EMPNO;

alter table EMP enable constraint PK_EMP_EMPNO;



【查询某表下约束】
select ‘CONSTRAINT_NAME:‘||CONSTRAINT_NAME||‘,‘||‘CONSTRAINT_TYPE:‘||CONSTRAINT_TYPE||‘,‘||‘TABLE_NAME:‘||TABLE_NAME||‘,‘||
‘STATUS:‘||STATUS from all_constraints WHERE table_name = ‘YX_ACTIVITY‘ and owner = ‘HUODONGPLATNEW‘;



-----------去掉外键约束---------------

 select ‘alter table ‘||u1.TABLE_NAME||‘ disable constraint ‘||u1.CONSTRAINT_NAME||‘;‘ from USER_CONS_COLUMNS u1,USER_CONSTRAINTS u2  where u1.CONSTRAINT_NAME=u2.CONSTRAINT_NAME and u2.CONSTRAINT_TYPE=‘R‘ and u1.TABLE_NAME=‘B‘;
 
 
 
 create table a ( id int,name varchar2(2));

create table b ( id int,name varchar2(2));

 ALTER TABLE b ADD CONSTRAINT FK_name FOREIGN KEY(id) REFERENCES a(id);
 
 alter table b add constraint pk_student1 primary key(id);
 
 alter table a add constraint pk_student2 primary key(id);
 
 
 
 
 ---------------------生产B2B------------------------
 DUMP_DIR2     /export/home/oracle/b2b_test
 
 grant read, write on directory DUMP_DIR2 to eygle;
 
 
 
 -----------------------63测试-----------------------
 DUMP_DIR2   /export/home/oracle/b2b_test
 
 grant read, write on directory DUMP_DIR2 to eygle;




以上是关于day5_查看表主外键关系的主要内容,如果未能解决你的问题,请参考以下文章

MySQL多表

mysql外键使用

SQL中有主外键的两表到底那这是主表

通过SQL脚本来查询SQLServer 中主外键关系

powerdesigner如何设置主外键关系?

EF之Code First设置主外键关系