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

  • 相关阅读:
    weblogic.xml 精妙设置
    mysql --> select * from Employee group by name这样的语法有什么意义?
    oracle pctfree和pctused详解
    超详细 SpringMVC @RequestMapping 注解使用技巧
    Spring 注解概览
    Js替换字符串中的所有空格
    面试题精选
    Axure RP Extension for Chrome修复
    【javascript】获取 格式化时间
    万能清除浮动
  • 原文地址:https://www.cnblogs.com/QinQouShui/p/1869950.html
Copyright © 2011-2022 走看看