非空约束:设置列时,可为空默认可为空,去掉对号之后设置数据不可为空; 唯一约束:在键中设置,唯一约束名称、类型Unique、列名;设置应用完成之后,此列数据具有唯一性;即数据不可重复 主键约束:主键列自动具有非空约束和唯一约束,一个表只能有一个主键约束(自动生成索引,提高查询效率) 原文:http://www.cnblogs.com/zhaotiancheng/p/6159488.html
1 级联删除Oracle在外键的删除上有NO ACTION(类似RESTRICT)、CASCADE和SET NULL三种行为。下面以学生-班级为例说明不同情况下的外键删除,学生属于班级,班级的主键是学生的外键。-- 班级表
CRATE TABLE TB_CLASS
(ID NUMBER NOT NULL, --班级主键NAME VARCHAR2(50), --班级名称CONSTRAINT PK_TB_CLASS PRIMARY KEY (ID)
);-- 学生表
CREATE TABLE TB_STUDENT
(ID NUMBER NOT NULL, --学生主键NAME VARCHAR2(50)...
1.问题背景虽然在数据库操作中我们并不提倡修改主键,但是确实在实际生活中有这样的业务需求:表A有主键KA,表B中声明了一个references A(KA)的外键约束,我们需要修改A中某条目KA的值并且更新B中外键约束。
但是DBMS在执行了第一条update后检查完整性会发现冲突:B中条目的外键不存在。注:我在Oracle database环境下遇到这个问题的,Oracle很蛋疼的不能设置外键为update级连,所以只有人工处理。2.举例说明用一个简单的例子说明,...
1、主键的创建方法一:直接在sql语句中声明字段主键约束create table table_name (id type[length] constraint pk_name primary key,name tyoe[length],age type[length],class_id);方法二:alter更改表添加约束alter table table_name add constraint pk_name primary key (字段);删除:alter table table_name drop constraint contraint_name;重命名:alter table table_name rename constraint old_name to new_name;失效:alt...
1.查询所有表的外键的:select table_name, constraint_name from user_constraints where constraint_type = ‘R‘; 2.禁用所有外键约束, 使用下面的sql生成对应sql脚本:select ‘alter table ‘ || table_name || ‘ disable constraint ‘ || constraint_name || ‘;‘ from user_constraints where constraint_type = ‘R‘;生成的sql类似下面的语句:alter table BERTH disable constraint BERTH_FK;alter table BOLLARD disa...
一般情况下, Oracle 子表的外键需要添加索引, 如果外键不添加索引, 一下3种情况会导致 修改父表会锁住子表 1、更新父表主键, 一般情况下, Oracle 子表的外键需要添加索引,
如果外键不添加索引, 一下3种情况会导致 修改父表会锁住子表
1、更新父表主键,子表会被锁住
2、删除父表一行, 整个子表会被锁住
3、合并到父表,子表会被锁住。(9i,,10G是这样,11G不会)。
如果满足以下三种情况,则不需要在外键建立索引
1、没有...
怎样查外键建在哪个表上有时候删除某张表记录的时候,会报错外键约束不能删除。如果不了解表之间的关系,可以通过以下语句查询到外键是建在哪张表上的:select * from dba_constraints where constraint_name=‘xxx‘ and constraint_type = ‘R‘; 例如:我的程序日志中报如下错误,我要知道外键是在那个表上.2015-09-08 18:28:18 [ main:261597003 ] - [ ERROR ] java.sql.SQLException: ORA-02291: 违反完整约束条件 (IRP.FK66E...
Oracle主键和外键相关知识标签:oracle主键和外键本文系统来源:http://7642644.blog.51cto.com/7632644/1701757
create table 表名(字段 字段类型 能否为空,... ...
);
comment on column 表/字段 is 注释;
例子:
create table COMPANY
(COM_ID INTEGER not null,COM_NAME VARCHAR2(32) null,COM_ADDRESS VARCHAR2(100) null
);
二、创建主键/外键1,创建表的同时创建主键约束无命名
create table test1
(
id int primary key not null...
table Student(S# integer primary key, sname varchar2(20), age integer);(2)课程表,属性有课程号(主键)、课程名和学分:create table Course(C# integer primary key, cname varchar2(20), credit integer);(3)成绩表,属性有学号、课程号和分数,学号是学生表中学号外键、课程号是课程表中课程号外键:create table SC (S# integer foreign key (S#) references Student(S#) on delete cascadeC# integer foreign key (C#) re...
expdp:
SQL> create directory dir_tables as ‘/home/oracle/tables‘;
SQL> grant read,write on directory dir_tables to 用户名;
expdp system/system密码@SID tables=用户名.表名 directory=dir_tables dumpfile=tables.dmp logfile=tables.log
impdp:
SQL> create directory dir_tables as ‘/home/oracle/imp_tables‘;
SQL> grant read,write on directory dir_tables to sys;
impdp system/system密码 directory=dir_ta...
一、在表student中添加主键sno
二、在表course中添加主键cno和外键tno
三、在表teacher中添加主键tno
<img alt="技术分享" src="http://www.mamicode.com/data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAh8AAADpCAIAAAALa8KrAAAgAElEQVR4nO2d+3MVVdb3+y94f0pNzQ/zy5O3BJ9XqKcmYabmvcylCOgIijCZCXINAjLjjRgVkWuO+jga7hEj1whMBIOC441HJAIJBAVvQJA7EQiRcNWYgFbpPNXvD33S2WfvvVbv3fc+vT61iuqzz76sXnvt/e0+56QxzF4GDRq0dOnSjo6Ole...
table usertable(id int primary key,username varchar(32) not null,birthday date,sex char(1),address varchar(256));create table orders(id int primary key,user_id int not null,numberid varchar(32) not null,createtime date,note varchar(100),constraint fk_orders foreign key (user_id) references usertable(id)
); oracle 创建表 外键约束标签:date time user ble logs for constrain birt 约束 ...
添加主键约束:
ALTER TABLE GA_AIRLINE ADD CONSTRAINT PK_AIRLINE_ID PRIMARY KEY(AIRLINE_ID);
有三种形式的外键约束:
1、普通外键约束(如果存在子表引用父表主键,则无法删除父表记录)
2、级联外键约束(可删除存在引用的父表记录,而且同时把所有有引用的子表记录也删除)
3、置空外键约束(可删除存在引用的父表记录,同时将子表中引用该父表主键的外键字段自动设为NULL,但该字段应允许空值)
这三种外键约束的建立语法...
1、主键的创建
方法一:直接在sql语句中声明字段主键约束
create table table_name (id type[length] constraint pk_name primary key,name tyoe[length],age type[length],class_id);
方法二:alter更改表添加约束
alter table table_name add constraint pk_name primary key (字段);
删除:
alter table table_name drop constraint contraint_name;
重命名:
alter table table_name rename constraint old_name to new_name;
...