zoukankan      html  css  js  c++  java
  • oralce10g中约束与列属性NULLABLE的关系

    结论:

    columname type not null与check (columnname is not null)的结果是不一样的

    因此:

    1、不需要手工去匹配NULLABLE属性,当所有显式导致NULLABLE由Y变N的约束被删除后,NULLABLE自然会恢复为Y。

    2、尽量不要使用CHECK来实现NOT NULL,可以使用MODIFY或直接在字段后声明

    drop table zwxtest04;
    create table zwxtest04
    (

     id integer
    );
    alter table zwxtest04 add constraint zwxtest04c2 check (id is not null);
    select * from user_tab_columns where table_name='ZWXTEST04';
    select * from user_constraints where table_name='ZWXTEST04';

    --NULLABLE 为Y ,约束并不会导致NULLABLE变动

    drop table zwxtest04;
    create table zwxtest04
    (

     id integer not null
    );

    select * from user_tab_columns where table_name='ZWXTEST04';
    select * from user_constraints where table_name='ZWXTEST04';

    -- NULLABLE 为N ,同时自动添加一个C型的NOT NULL的约束

    drop table zwxtest04;
    create table zwxtest04
    (

     id integer 

    );
    alter table zwxtest04 id not nul;
    select * from user_tab_columns where table_name='ZWXTEST04';
    select * from user_constraints where table_name='ZWXTEST04';

    -- NULLABLE 为N ,同时自动添加一个C型的NOT NULL的约束

    drop table zwxtest04;
    create table zwxtest04
    (

     id integer
    );
    alter table zwxtest04 add constraint zwxtest04c3 primary key (id  );
    select * from user_tab_columns where table_name='ZWXTEST04';
    select * from user_constraints where table_name='ZWXTEST04';

    -- NULLABLE 为N ,创建P型约束,创建UNIQUE索引

    alter table zwxtest04 drop constraint zwxtest04c3 ;

    --NULLABLE为Y

  • 相关阅读:
    需求的有序化和方案的系统化
    产品 增长 口碑传播
    私域流量的价值 大悦城微信营销:14万微信会员哪来的
    产品创新阶段关口细则
    业务关键数据指标
    TOB 增长
    医美品零售门店分析
    数据赋能饮品轻食
    [已读]你不知道的JavaScript(上卷)
    [已读]移动web手册
  • 原文地址:https://www.cnblogs.com/QinQouShui/p/1869950.html
Copyright © 2011-2022 走看看