FSN#40852 kostenplaats.kostenplaatsgrp_key toch nullable laten

svn path=/Database/branches/DB31/; revision=34270
This commit is contained in:
Jos Groot Lipman
2017-06-14 15:29:54 +00:00
parent 1ffb1fb3fd
commit 25c3348eb9
3 changed files with 34 additions and 25 deletions

View File

@@ -318,7 +318,6 @@ CREATE_TABLE(prs_kostenplaats,0) (
DATE,
prs_kostenplaatsgrp_key
NUMBER(10)
NOT NULL
CONSTRAINT prs_r_prs_kostenplaatsgrp_key REFERENCES prs_kostenplaatsgrp(prs_kostenplaatsgrp_key),
prs_kostenplaats_aanmaak
DATE DEFAULT SYSDATE,

View File

@@ -413,32 +413,9 @@ END;
ALTER TABLE prs_kostensoort MODIFY prs_kostensoortgrp_key NOT NULL;
ALTER TABLE prs_kostensoort ADD fin_btwtabelwaarde_key NUMBER(10) CONSTRAINT prs_r_fin_btwtabelwaarde_key REFERENCES fin_btwtabelwaarde (fin_btwtabelwaarde_key);
-- en deze relatie is nu ook verplicht. Maak voor de ontbrekende verwijzingen een default aan.
ALTER TABLE prs_kostenplaats DROP CONSTRAINT prs_r_prs_kostenplaatsgrp_key;
ALTER TABLE prs_kostenplaats MODIFY (prs_kostenplaatsgrp_key CONSTRAINT prs_r_prs_kostenplaatsgrp_key REFERENCES prs_kostenplaatsgrp(prs_kostenplaatsgrp_key));
DECLARE
gcnt NUMBER;
gkey NUMBER (10);
BEGIN
SELECT COUNT ( * )
INTO gcnt
FROM prs_kostenplaats
WHERE prs_kostenplaatsgrp_key IS NULL;
IF gcnt > 0
THEN
INSERT INTO prs_kostenplaatsgrp (prs_kostenplaatsgrp_oms)
VALUES ('Default')
RETURNING prs_kostenplaatsgrp_key
INTO gkey;
UPDATE prs_kostenplaats
SET prs_kostenplaatsgrp_key = gkey
WHERE prs_kostenplaatsgrp_key IS NULL;
END IF;
END;
/
ALTER TABLE prs_kostenplaats MODIFY prs_kostenplaatsgrp_key NOT NULL;
// DB31d: Removed code, toch prs_kostenplaatsgrp.prs_kostenplaatsgrp_key weer NULL toestaan
ALTER TABLE prs_kostenplaatsgrp ADD bgt_project_key NUMBER(10) CONSTRAINT prs_r_bgt_project_key2 REFERENCES bgt_project(bgt_project_key);

33
_UP/DB31cto31d.sql Normal file
View File

@@ -0,0 +1,33 @@
--
-- $Id$
--
-- Toch prs_kostenplaatsgrp.prs_kostenplaatsgrp_key weer NULL toestaan
-- Nodig voor alle databases die met DB31/a/b/c zijn aangemaakt
DEFINE thisfile = 'DB31cto31d.sql'
DEFINE dbuser = '*'
SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
WHENEVER SQLERROR EXIT;
SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
WHENEVER SQLERROR CONTINUE;
SPOOL &fcltlogfile
SET DEFINE OFF
------ payload begin ------
ALTER TABLE prs_kostenplaats MODIFY prs_kostenplaatsgrp_key NULL;
------ payload end ------
SET DEFINE OFF
BEGIN adm.systrackscriptId ('$Id$', 1); END;
/
COMMIT;
SET ECHO OFF
SPOOL OFF
SET DEFINE ON
PROMPT Logfile of this upgrade is: &fcltlogfile