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

  • 相关阅读:
    NodeJS 难点(网络,文件)的 核心 stream 二:stream是什么
    NodeJS 难点(网络,文件)的 核心 stream 一:Buffer
    了解了这些才能开始发挥jQuery的威力
    一般公司的大体要求
    js 的垃圾回收器 原理 坑 优化-- 待续
    iframe 问题集合
    图片预加载 js css预加载
    各种插件
    Django REST framework快速入门指南
    Vue.js devtool插件安装后无法使用的解决办法
  • 原文地址:https://www.cnblogs.com/QinQouShui/p/1869950.html
Copyright © 2011-2022 走看看