oracle两个约束,Oracle中的约束介绍(2)
CREATE OR REPLACE FUNCTION GETREFERENCESCOLUMN
(
i_table_name varchar2 , --表名
i_constraint_name varchar2 --列名
)
RETURN nvarchar2
AS
v_table_name nvarchar2(50);
BEGIN
v_table_name:='';
for cur in (
select distinct
b.column_name
from
(select a.constraint_name,b.table_name,b.column_name,a.r_constraint_name
from user_constraints a, user_cons_columns b
WHERE a.constraint_type='R'
and a.constraint_name=b.constraint_name
order by b.position
) a,
(select distinct a.r_constraint_name,b.table_name,b.column_name,b.position
from user_constraints a, user_cons_columns b
WHERE a.constraint_type='R'
and
a.r_constraint_name=b.constraint_name
order by b.position)
b
where a.r_constraint_name=b.r_constraint_name and b.table_name = i_table_name
and b.r_constraint_name = i_constraint_name
) loop
v_table_name := v_table_name||cur.column_name ||',';
end loop;
v_table_name := trim(',' from v_table_name);
RETURN v_table_name;
END;
/***----------------------------外键表-------------------***/
CREATE OR REPLACE FUNCTION GETFOREIGNCOLUMN
(
i_table_name varchar2 , --表名
i_constraint_name varchar2 --列名
)
RETURN nvarchar2
AS
v_table_name nvarchar2(50);
BEGIN
v_table_name:='';
for cur in (
select distinct
a.column_name
from
(select a.constraint_name,b.table_name,b.column_name,a.r_constraint_name
from user_constraints a, user_cons_columns b
WHERE a.constraint_type='R'
and a.constraint_name=b.constraint_name
order by b.position
) a,
(select distinct a.r_constraint_name,b.table_name,b.column_name,b.position
from user_constraints a, user_cons_columns b
WHERE a.constraint_type='R'
and
a.r_constraint_name=b.constraint_name
order by b.position)
b
where a.r_constraint_name=b.r_constraint_name and a.table_name = i_table_name
and a.constraint_name = i_constraint_name
) loop
v_table_name := v_table_name||cur.column_name ||',';
end loop;
v_table_name := trim(',' from v_table_name);
RETURN v_table_name;
END;
/***-------------------导出外键------------------***/
select
'ALTER TABLE ' ||
a.table_name
|| ' ADD CONSTRAINT ' ||
a.constraint_name
|| ' FOREIGN KEY ('
|| a.column_name||')'
||'
REFERENCES ' ||b.table_name || ';'
from
(select a.constraint_name,b.table_name,b.column_name,a.r_constraint_name
from user_constraints a, user_cons_columns b
WHERE a.constraint_type='R'
and a.constraint_name=b.constraint_name
) a,
(select distinct a.r_constraint_name,b.table_name,b.column_name
from user_constraints a, user_cons_columns b
WHERE a.constraint_type='R'
and
a.r_constraint_name=b.constraint_name)
b
where a.r_constraint_name=b.r_constraint_name
order by a.table_name ;
oracle两个约束,Oracle中的约束介绍(2)相关推荐
- mysql中如何删除表中int约束,MySQL中的约束,添加约束,删除约束,以及其他修饰
一.NOT NULL(非空约束) 添加非空约束 1)建表时直接添加 CREATE TABLE t_user(user_id INT(10) NOT NULL); 2)通过ALTER 语句 ALTER ...
- mysql 语句怎样修饰约束_MySQL中的约束,添加约束,删除约束,以及一些其他修饰讲解...
(1)创建数据库 CREATE DATABASES 数据库名; (2)选择数据库 USE 数据库名; (3)删除数据库 DROP DATAVBASE 数据库名; (4)创建表 CREATE TABLE ...
- Oracle数据字典中查看约束信息/约束相关笔记
1.我们创建的对象可以从"USER_"开通的视图中查看.如果在模式中创建了10张表,那么从USER_TABLES中查询将返回10行,每一行是关于一张表的特性信息 USER_TABL ...
- 转载:oracle中的约束
数据完整性 数据库不仅仅是存储数据,它也必须保证所保存的数据的正确性.如果数据不正确或不一致,那么该数据的完整性可能会遭到破坏,从而给数据库本身的可靠性带来意想不到的问题. 为了维护数据库中的数据完成 ...
- Oracle视图添加约束,Oracle的约束视图
在Oracle中插入数据时,可能由于不符合约束而无法插入成功. 将报类似于如下的错误信息: SQL Error: ORA-02291: 违反完整约束条件 (TEST.FK_KB_TEST_ID) - ...
- oracle 怎么创建约束,Oracle创建约束
约束的类型: oracle数据库支持的约束类型包括: 1.unique 2.not null 3.primary key 4.foreignkey 5.check 约束都有名称.如果没有显示地给它们命 ...
- oracle 约束 Oracle 10g学习系列(5)
这篇文章来自网络,写的挺好,转过来了. 维护数据的完整性 概述:数据的完整性用于确保数据库数据遵从一定的商业和逻辑规则.在Oracle中,数据完整性可以使用约束.触发器.应用程序(过程.函数)三种方 ...
- linux音源管理 二维表,Oracle【二维表管理:约束】
1.简单的表创建和字段类型 最简单的方式去创建表(没有添加主键之类的约束条件) [Oracle的字段类型] number:数值类型 --整数类型:number(a) 总长度a --小数类型:numbe ...
- Oracle数据库:约束条件:主键约束、唯一约束、检查约束、非空约束、外键约束、默认值填写
Oracle数据库:约束条件:主键约束.唯一约束.检查约束.非空约束.外键约束.默认值填写 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开 ...
- Oracle索引梳理系列(七)- Oracle唯一索引、普通索引及约束的关系
版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...
最新文章
- 第二讲,我们来谈谈:“什么是二进制”
- DNS隧道工具汇总——补充,还有IP over DNS的工具NSTX、Iodine、DNSCat
- 查询表结构用于导出excel
- 学习笔记--2014年7月7日
- java 进制转换算法_算法笔记_033:十六进制转八进制(Java)
- java mysql 常见框架_Java岗面试重点:Java+JVM+MySQL+框架+算法,金九银十涨薪全靠它...
- Android Studio3.x填坑路
- 使用 Fiddler 调试 心知天气,stm32 esp8266获取天气api
- 用usecase获取需求的方法是否有缺陷,还有什么地方需要改进
- 中国首个5G全覆盖产研一体化创新园启动
- strak组件(5):为列表定制预留钩子方法
- 百度地图只显示行政区
- 关于OpenGL游戏全屏模式的设置
- 为什么docker的端口映射需要开启ip转发功能?
- 百度快照劫持是什么意思?如何解决百度快照被劫持、百度劫持
- Android音乐播放器
- 勋章菊的养殖方法和注意事项
- 关于无损APE,FLAC转AAC的小技巧
- python2升级python3语法错误总结
- 市场调研-全球与中国企业数据丢失预防(EDLP)产品市场现状及未来发展趋势