double not null constraints

sfradesfrade Posts: 10
edited December 19, 2013 9:10AM in Source Control for Oracle
Hi

the code generated by Source control create a constraint NOT NULL and a CHECK (xxx IS NOT NULL) for the same field.

see the field titi_name in the code below
CREATE TABLE unified.titi (
  titi_id RAW(16) DEFAULT SYS_GUID() NOT NULL,
  titi_name VARCHAR2(50 BYTE) NOT NULL CONSTRAINT nn_titi_tina CHECK ("TITI_NAME" IS NOT NULL),
  CONSTRAINT titi_pk PRIMARY KEY (titi_id)
);

Seb

Comments

  • Eddie DEddie D Posts: 1,720 Rose Gold 5
    Hi

    I understand the problem, I believe it to be caused in the method that Oracle creates the metadata information.

    Although you create your SQL script as follows:
    CREATE TABLE TITI 
    ( 
    TITI_ID RAW(16) DEFAULT SYS_GUID(), 
    TITI_NAME VARCHAR2(50 BYTE) CONSTRAINT NN_TITI_TINA NOT NULL, 
    CONSTRAINT TITI_PK PRIMARY KEY (TITI_ID) 
    );
    

    Oracle is storing the metadata information as follows:
    CREATE TABLE unified.titi ( 
    titi_id RAW(16) DEFAULT SYS_GUID() NOT NULL, 
    titi_name VARCHAR2(50 BYTE) NOT NULL CONSTRAINT nn_titi_tina CHECK ("TITI_NAME" IS NOT NULL), 
    CONSTRAINT titi_pk PRIMARY KEY (titi_id) 
    );
    

    As Source Control for Oracle will read how the table is created from the metadata, hence the difference.

    Does this cause a problem for you?

    A support ticket has been created for you HERE.

    Many Thanks
    Eddie
    Eddie Davis
    Product Support Engineer
    Redgate Software Ltd
    Email: [email protected]
Sign In or Register to comment.