精华内容
下载资源
问答
  • Oracle 数据库中关于对表字段约束的操作(设置、删除、...2. 删除表的单个字段约束SQL> ALTER TABLE 表名 DROP UNIQUE(字段名);3. 给的多个字段加约束SQL> ALTER TABLE 表名 ADD CONSTRAINTS 约束名 UNIQUE(...

    Oracle 数据库中关于对表字段约束的操作(设置、删除、查询)

    1. 给表的单个字段加约束

    SQL> ALTER TABLE 表名 ADD UNIQUE(字段名);

    2. 删除表的单个字段约束

    SQL> ALTER TABLE 表名 DROP UNIQUE(字段名);

    3. 给表的多个字段加约束

    SQL> ALTER TABLE 表名 ADD CONSTRAINTS 约束名 UNIQUE(字段名, 字段名 ...);

    4.删除表的多个字段约束

    SQL> ALTER TABLE 表名 DROP CONSTRAINT 约束名;

    5. 查询某表都有哪些约束

    SQL> select CONSTRAINT_NAME from USER_CONSTRAINTS WHERE TABLE_NAME='表名' AND CONSTRAINT_TYPE='U';

    6. 查询某约束都约束了哪些字段

    SQL> select COLUMN_NAME from USER_CONS_COLUMNS WHERE CONSTRAINT_NAME='约束名';

    提示:

    如果加约束时出现 ORA-02299: cannot validate (xxx) - duplicate keys found 错误,可能是因为表中有约束字段重复的记录,先删除表中数据再试试。

    展开全文
  • ORA-02443: 无法删除约束条件-不存在约束条件 看到有人有同样的问题。亲测之后: 情况一:常规操作 ALTER TABLE table_name DROP CONSTRAINT foreignkeyname; 情况二:需要加引号(而且是双引号) ALTER TABLE ...

    在PL/SQL中删除外键,无论是在【对象】窗口可视化操作删除还是用drop语句都会报错:

     

    ORA-02443: 无法删除约束条件-不存在的约束条件


    看到有人有同样的问题。亲测之后:
    情况一:常规操作

     

    ALTER TABLE table_name DROP CONSTRAINT foreignkeyname;


    情况二:需要加引号(而且是双引号)

     

    ALTER TABLE table_name DROP CONSTRAINT "foreignkeyname";


    情况二,原因也找到了。是Oracle大小写区分。

     

    可能有人在建表的时候习惯用可视化工具创建表、外键等。这样工具会给表名、键名等自动加"",这样就区分了大小写。

     

    然而在做查询操作的时候不加双引号,会默认转化为大写,就有可能查询不到相关名称的表、外键等。

    本人在PL/SQL中使用SQL语句去建表就不会再有这样的问题。

     

    展开全文
  • 非空: (not null)唯一性:( unique)主键:(primary key,PK)外键:(foreign key,FK)unique约束的字段具有唯一性,可重复,但是可以为null例如列级约束:drop table if exists t_student;create table t_student...

    非空: (not null)

    唯一性:( unique)

    主键:(primary key,PK)

    外键:(foreign key,FK)

    unique约束的字段具有唯一性,不可重复,但是可以为null

    例如列级约束:

    drop table if exists t_student;

    create table t_student(

    id int not null,

    name varchar(32) not null,

    email varchar(64) unique)

    表示本表格中电子邮箱是唯一的,不能重复

    (drop table if exists t_student 检查t_student表格是否存在,如果存在,则删除,后续重新创建)

    表级约束:

    drop table if exists t_student;

    create table t_student(

    id int not null,

    name varchar(32) not null,

    email varchar(64) ,

    unique(email))

    本例中表级约束和列级约束的作用是一样的

    但可以实用表级约束联合约束多个字段:

    drop table if exists t_student;

    create table t_student(

    id int not null,

    name varchar(32) not null,

    email varchar(64) ,

    unique(name,email));

    name,email两个都重复时才算重复

    表级约束可以给约束起名字,方便以后删除:

    例如:

    create table t_student(

    id int not null,

    name varchar(32) not null,

    email varchar(64) ,

    constraint t_student_email_unique unique(email));

    table_contraints 中专门存储约束信息:

    mysql> show databases;

    ±-------------------+

    | Database |

    ±-------------------+

    | information_schema |

    | liu |

    | mysql |

    | performance_schema |

    | sys |

    | test |

    ±-------------------+

    6 rows in set (0.00 sec)

    mysql> use information_schema;

    Reading table information for completion of table and column names

    You can turn off this feature to get a quicker startup with -A

    Database changed

    mysql> show tables;

    ±--------------------------------------+

    | Tables_in_information_schema |

    ±--------------------------------------+

    | CHARACTER_SETS |

    | COLLATIONS |

    | COLLATION_CHARACTER_SET_APPLICABILITY |

    | COLUMNS |

    | COLUMN_PRIVILEGES |

    | ENGINES |

    | EVENTS |

    | FILES |

    | GLOBAL_STATUS |

    | GLOBAL_VARIABLES |

    | KEY_COLUMN_USAGE |

    | OPTIMIZER_TRACE |

    | PARAMETERS |

    | PARTITIONS |

    | PLUGINS |

    | PROCESSLIST |

    | PROFILING |

    | REFERENTIAL_CONSTRAINTS |

    | ROUTINES |

    | SCHEMATA |

    | SCHEMA_PRIVILEGES |

    | SESSION_STATUS |

    | SESSION_VARIABLES |

    | STATISTICS |

    | TABLES |

    | TABLESPACES |

    | TABLE_CONSTRAINTS |

    | TABLE_PRIVILEGES |

    | TRIGGERS |

    | USER_PRIVILEGES |

    | VIEWS |

    | INNODB_LOCKS |

    | INNODB_TRX |

    | INNODB_SYS_DATAFILES |

    | INNODB_FT_CONFIG |

    | INNODB_SYS_VIRTUAL |

    | INNODB_CMP |

    | INNODB_FT_BEING_DELETED |

    | INNODB_CMP_RESET |

    | INNODB_CMP_PER_INDEX |

    | INNODB_CMPMEM_RESET |

    | INNODB_FT_DELETED |

    | INNODB_BUFFER_PAGE_LRU |

    | INNODB_LOCK_WAITS |

    | INNODB_TEMP_TABLE_INFO |

    | INNODB_SYS_INDEXES |

    | INNODB_SYS_TABLES |

    | INNODB_SYS_FIELDS |

    | INNODB_CMP_PER_INDEX_RESET |

    | INNODB_BUFFER_PAGE |

    | INNODB_FT_DEFAULT_STOPWORD |

    | INNODB_FT_INDEX_TABLE |

    | INNODB_FT_INDEX_CACHE |

    | INNODB_SYS_TABLESPACES |

    | INNODB_METRICS |

    | INNODB_SYS_FOREIGN_COLS |

    | INNODB_CMPMEM |

    | INNODB_BUFFER_POOL_STATS |

    | INNODB_SYS_COLUMNS |

    | INNODB_SYS_FOREIGN |

    | INNODB_SYS_TABLESTATS |

    ±--------------------------------------+

    61 rows in set (0.00 sec)

    mysql> desc table_constraints;

    ±-------------------±-------------±-----±----±--------±------+

    | Field | Type | Null | Key | Default | Extra |

    ±-------------------±-------------±-----±----±--------±------+

    | CONSTRAINT_CATALOG | varchar(512) | NO | | | |

    | CONSTRAINT_SCHEMA | varchar(64) | NO | | | |

    | CONSTRAINT_NAME | varchar(64) | NO | | | |

    | TABLE_SCHEMA | varchar(64) | NO | | | |

    | TABLE_NAME | varchar(64) | NO | | | |

    | CONSTRAINT_TYPE | varchar(64) | NO | | | |

    ±-------------------±-------------±-----±----±--------±------+

    查找约束相关情况:

    select constraint_name from table_constraints where table_name=“t_student”;

    展开全文
  • 这几天在做项目时,清除库中的数据,但是各之间都存在约束关系,无法使用 ‘ truncate table 表名’语句进行操作,通过查询资料,找到了解决方法,当之间存在约束关联时,想要执行truncate删除语句,就要先将...

    这几天在做项目时,清除库中的数据,但是各表之间都存在约束关系,无法使用 ‘ truncate table 表名 ’语句进行操作,通过查询资料,找到了解决方法,当表之间存在约束关联时,想要执行truncate删除语句,就要先将约束禁用掉,删除后在恢复约束,就可以操作了。具体方法如下:

    (1)查询要删除表存在哪些约束的SQL

    select constraint_name, constraint_type, status from user_constraints where table_name='要删除的表名';

    select constraint_name, constraint_type, status from user_constraints where table_name='PRJ_PROJECT';

    (2)禁止外键约束的SQL

       方式一:
           alter table '表名' disable constraint '约束名称'

           alter table PRJ_PROJECT disable constraint SYS_C0018174;

       方式二:

          alter table '表名' modify constraint '约束名称' disable cascade;

          alter table PRJ_PROJECT modify constraint PK_PRJ_PROJECT disable cascade;

    (3)执行truncate 语句删除数据

           truncate table '表名'

           truncate table PRJ_PROJECT;

    (4)恢复外键约束的SQL

       方式一:

           alter table '要恢复的表名' enable constraint '约束名称';

           alter table PRJ_PROJECT enable constraint SYS_C0018174; 

       方式二:

           alter table '要恢复的表名' modify constraint '约束名称' enable;

           alter table PRJ_PROJECT modify constraint PK_PRJ_PROJECT enable;


    对创建及删除一些表、字段、列及范围的约束的相关操作进行了总结整理,具体如下:

    创建与删除SQL约束或字段约束

    1)禁止所有表约束的SQL
    select 'alter table ' + name + ' nocheck constraint all' from sysobjects where type='U'

    2)删除所有表数据的SQL
    select 'truncate table ' + name from sysobjects where type='U'

    3)恢复所有表约束的SQL
    select 'alter table ' + name + ' check constraint all' from sysobjects where type='U'

    4)删除某字段的约束
    declare @name varchar(100)
    --DF为约束名称前缀
    select @name=b.name from syscolumns a,sysobjects b where a.id=object_id('表名') and b.id=a.cdefault and a.name='字段名' and b.name like 'DF%'
    --删除约束
    alter table 表名 drop constraint @name
    --为字段添加新默认值和约束
    ALTER TABLE 表名 ADD CONSTRAINT @name  DEFAULT (0) FOR [字段名]

    --删除约束
    ALTER TABLE tablename Drop CONSTRAINT 约束名
    --修改表中已经存在的列的属性(不包括约束,但可以为主键或递增或唯一)
    ALTER TABLE tablename 
    alter column 列名 int not null
    --添加列的约束
    ALTER TABLE tablename
    ADD CONSTRAINT DF_tablename_列名 DEFAULT(0) FOR 列名
    --添加范围约束
    alter table  tablename  add  check(性别 in ('M','F'))

    展开全文
  •  生成的sql中都加上了" " ,因为oracle 是大小写敏感的,如果没有加“” 的情况下,oracle 默认都转为大写,如果加“” 则表示为小写,那么在使用的过程中都将要加“” 可以使用下面的sql 进行删除,复制...
  • 【SQL】删除表约束条件

    千次阅读 2018-10-25 16:00:45
    SQL:删除表约束条件 2018.10.25 前言 某项目采用Hibernate,并配置hibernate.hbm2ddl.auto为update1,而实体类A中a成员变量声明为: @Column(length = 45, unique=true) private String a; 而后需求改动,该...
  • MySQL 表约束

    2021-01-28 01:19:29
    约束概述对数据中数据的限制条件叫约束,目的是为了保证中记录的完整和...2 通过检查约束表 查看约束select * from information_schema.table_constraints where table_name="usr";Tips:在MySQL数据库中...
  • 三、删除表truncate table 表名 //删除表中的所有数据,速度比delete快很多,截断delete from table 条件 // 删除表中的数据drop table 表名 //删除表四、Oracle中约束条件每个标题都默认先drop table后create ...
  • – 一、创建 – 创建图书馆管理系统所涉及的 – 创建产品销售系统所涉及的 – 图书book(bid,bname,price,qty) – 书库lib(lid,lname,address) – 读者reader(rid,rname,dept) – 借阅loan(bid,...
  • 强化:6约束 constraints 一.非空约束 not null 二.唯一约束 unique 三.主键约束 primary key 四.外键约束 forgrein key 五.默认约束 default 六.检查约束 check 多联查 join 笛卡尔积 Cartesian product 三种...
  • 背景:在数据仓库中批量的导入数据的情况下,如果较多的约束存在那么会增加数据库的负担降低系统导入数据的效率,在这个情况下一般会采取牺牲约束的校验换取系统执行的效率。即禁用约束待数据全部导入成功以后再检查...
  • 我就废话多说了,大家还是直接看代码吧~SELECTtc.constraint_name, tc.table_name, kcu.column_name,ccu.table_name AS foreign_table_name,ccu.column_name AS foreign_column_name,tc.is_deferrable,tc....
  • SQL 约束Constraints) SQL 约束用于规定中的数据规则。 如果存在违反约束的数据行为,行为会被约束终止。 约束可以在创建时规定(通过 CREATETABLE 语句),或者在创建之后规定(通过 ALTER TABLE 语句)...
  • Oralce静态数据字典之4 CONSTRAINTS 约束 -- 获取Oralce结构的主键,采集到Teradata后保持主键一致
  • 用户和空间 用户 空间 查看用户的空间 设置用户默认或临时空间 (普通用户没有次权限) 查看空间储存位置 中的数据类型 创建 修改 操作中数据 约束 非空约束 主键约束 外键约束 唯一约束 ...
  • Oracle约束Constraints

    2018-02-08 14:42:27
    数据库中的六大约束主键约束(Primary Key Constraint) 唯一约束 (Unique Constraint)非空约束(Not Null Constraints)外键约束 (Foreign Key Constraint) 检查约束 (Check Constraint) 默认约束 (Default ...
  • 目标:1.添加和修改列2.添加,enable,disable,或者remove约束3.删除表4.删除表中所有数据并回到定义的初始...添加和删除约束3.enable,disable约束2.drop table命令移除中所有行和结构3.rename,truncate,...
  • 添加主键 给学生添加主键:学号。语句如下: ...班级编号是班级的主键,该外键约束命名为fk_学生,语句如下: ALTER TABLE 学生 ADD CONSTRAINT fk_学生 FOREIGN KEY(班级编号) REFERENCES 班级;...
  • 约束Constraints

    2017-11-21 17:36:00
    目的:为了防止数据库存在不符合语义的数据,防止错误信息的输入和输出约束的用途是限制用户输入到中的数据的值的范围 分类 分类1:列级约束约束两种分类2:NOT NULLUNIQUEPRIMARY KEYFOREIGN KEYCHECK...
  • MySQL创建并添加约束常见的约束● 非空约束,not null● 唯一约束,unique● 主键约束,primary key● 外键约束,foreign key● 自定义检查约束,check(建议使用)(在mysql中现在还支持)非空约束,not null非空...
  • 约束constraints

    2013-07-15 15:55:30
    -- 约束constraints)用于限制加入的数据的类型 ----- 约束可以在建表的时候加,也可以在建表后加上。 ---- 主要用 NOT NULL,UNIQUE,primary key ,foreign key , check ,default --- 1. not null ---- ...
  • 其他的外键: select * from user_constraints t where t.r_constraint_name='XPK岗位信息' 对应的外键的 ING_PERSON_POSITION_MAP ,外键约束名: FK_ING_PERSON_POSITION_MAP2 --2 删除外键约束 ...
  • 约束 约束的根本目的是保证数据的完整性,主要有主键约束、外键约束、唯一性约束、检查约束、默认值约束、非空约束。 域完整性 是对数据中的字段属性进行约束,包括字段的值域、字段的类型以及字段的有效规则...
  • SQL 约束Constraints

    2021-06-26 17:39:43
    如果存在违反约束的数据行为,行为会被约束终止。 约束可以在创建时规定(通过 CREATE TABLE 语句),或者在创建之后规定(通过 ALTER TABLE 语句)。 语法 CREATE TABLE table_name ( column_name1 data_...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,000
精华内容 5,200
关键字:

表不存在删除constraints约束