community.borland.com

Article #25106: ALTER TABLE . . . DROP CONSTRAINT command drops IBServer

Problem:
When executing an alter table statement the ibserver drops

Solution:
Run the script shown below to create the database.  

Next issue the command:

ALTER TABLE MEMORIZER_GROUP DROP CONSTRAINT XPKMEMORIZER_GROUP  

This will drop IBServer out of memory.

Note: The server no longer crashes in version V5.0

To allow the successful dropping of the primary key change the text MEMORIZER_GROUP.MEMORIZER_GROUP_SK into a hard-coded value like 0.  

NOTE: I feel it is important to mention the customer ran across this problem 
when using ERWIN to design the database.

--------------------------------------------------- begin script --------------------------------------------------
CREATE DATABASE "aquaman:d:templee_griggscrash.gdb" PAGE_SIZE 1024  user "SYSDBA" password "masterkey";

CREATE TABLE MEMORIZER_ELEMENT 
  (MEMORIZER_GROUP_SK INTEGER NOT NULL);

CREATE TABLE MEMORIZER_GROUP 
  (MEMORIZER_GROUP_SK INTEGER NOT NULL,
   CONSTRAINT XPKMEMORIZER_GROUP PRIMARY KEY (MEMORIZER_GROUP_SK));

SET TERM ^ ;

CREATE TRIGGER TI_MEMORIZER_ELEMENT FOR MEMORIZER_ELEMENT               
ACTIVE BEFORE INSERT POSITION 1 
AS
DECLARE VARIABLE numrows INTEGER;
BEGIN
    select count(*)
      from MEMORIZER_GROUP
      where
        NEW.MEMORIZER_GROUP_SK = MEMORIZER_GROUP.MEMORIZER_GROUP_SK into numrows;
END
 ^

CREATE TRIGGER TU_MEMORIZER_GROUP FOR MEMORIZER_GROUP                 
ACTIVE BEFORE UPDATE POSITION 1 
AS
DECLARE VARIABLE numrows INTEGER;
BEGIN
    select count(*)
      from MEMORIZER_ELEMENT
      where
        MEMORIZER_ELEMENT.MEMORIZER_GROUP_SK = OLD.MEMORIZER_GROUP_SK into numrows;
END
 ^
COMMIT WORK ^
SET TERM ; ^

--------------------------------------------------- end script --------------------------------------------------

Last Modified: 27-SEP-00