Red Gate forums :: View topic - The pk column does not need a not null constraint
Return to www.red-gate.com RSS Feed Available

Search  | Usergroups |  Profile |  Messages |  Log in  Register 
Go to product documentation
Source Control for Oracle
Source Control for Oracle forum

The pk column does not need a not null constraint

Search in Source Control for Oracle forum
Post new topic   Reply to topic
Jump to:  
Author Message
sfrade



Joined: 17 Dec 2013
Posts: 6

PostPosted: Wed Dec 18, 2013 8:12 am    Post subject: The pk column does not need a not null constraint Reply with quote

Hi,

Source control generate the following SQL code
Code:

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)
);


Whereas the original code is

Code:

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)
);


Source control code create an additional constraint on the field "titi_id" which is not necessary. As this field has a primary constraint, Oracle implicitly creates a not null constraint and a unique index on the field.

Seb

[/code]
Back to top
View user's profile Send private message
eddie davis



Joined: 14 Jun 2006
Posts: 889
Location: Red Gate Software

PostPosted: Thu Jan 16, 2014 11:50 am    Post subject: Reply with quote

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:
Code:

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:
Code:

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.

I hope this does not cause a problem for you?

I have submitted a Bug Report OSC-313 to highlight the problem to the Development Team.

A support call has also be created for you which can be found HERE.

Many Thanks
Eddie
_________________
Eddie Davis
Technical Support Engineer
Red Gate Software Ltd
E-mail: support@red-gate.com
Back to top
View user's profile Send private message Send e-mail
sfrade



Joined: 17 Dec 2013
Posts: 6

PostPosted: Wed Feb 05, 2014 11:24 am    Post subject: Reply with quote

Thanks for the reply.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic All times are GMT + 1 Hour
Page 1 of 1

 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group