![]() |
|
Archives of the TeradataForumMessage Posted: Wed, 04 Aug 1999 @ 16:12:23 GMT
I apologize from the start for the length of this message. Can anyone help with this trigger syntax? We have placed a call with our NCR Hardware VAR (BULL HN) and have not received any response after several days. I am including a show of two tables involved as well as several attempts to create a valid trigger. We are trying to establish a before insert trigger that will check for a parent table entry and if it is not present, insert a 'System Inserted' entry so that valid RI exists. Thanks in advance for any help. Regards, Dale Leake
show table graybar.customer_master;
---------------------------------------------------------------------------
CREATE SET TABLE graybar.customer_master ,NO FALLBACK ,
NO BEFORE JOURNAL,
NO AFTER JOURNAL
(
TDWS_IDN_C_COMP CHAR(8) CHARACTER SET LATIN CASESPECIFIC NOT NULL,
CMST_CDE_C_COMP_TYPE CHAR(1) CHARACTER SET LATIN CASESPECIFIC NOT NULL,
CMST_NM_C_MASTER VARCHAR(40) CHARACTER SET LATIN CASESPECIFIC NOT NULL)
UNIQUE PRIMARY INDEX RCMST_UPI ( TDWS_IDN_C_COMP ,CMST_CDE_C_COMP_TYPE );
show table graybar.cust_bill_to;
---------------------------------------------------------------------------
CREATE SET TABLE graybar.cust_bill_to ,NO FALLBACK ,
NO BEFORE JOURNAL,
NO AFTER JOURNAL
(
F1000_IDN_LOC_C SMALLINT NOT NULL,
F1000_PFX_C CHAR(3) CHARACTER SET LATIN CASESPECIFIC NOT NULL,
CMST_CDE_C_COMP_TYPE CHAR(1) CHARACTER SET LATIN CASESPECIFIC NOT NULL,
F1000_CDE_C_TYPE CHAR(1) CHARACTER SET LATIN CASESPECIFIC NOT NULL,
F1000_CDE_CSR_RFRN CHAR(2) CHARACTER SET LATIN CASESPECIFIC NOT NULL,
F1000_CDE_FNL_ASG CHAR(1) CHARACTER SET LATIN CASESPECIFIC NOT NULL,
OMST_CDE_ORGN_COMP_TYPE_DIST CHAR(2) CHARACTER SET LATIN CASESPECIFIC NOT NULL,
TDWS_IDN_C_COMP CHAR(8) CHARACTER SET LATIN CASESPECIFIC NOT NULL,
F1000_IDN_C_XREF INTEGER NOT NULL,
F1000_IDN_CPA INTEGER NOT NULL,
F1000_IDN_CPA_XCP INTEGER NOT NULL,
F1000_IDN_CUST INTEGER NOT NULL,
LTBL_IDN_DIST BYTEINT NOT NULL,
F1000_IDN_NATL_ACC INTEGER NOT NULL,
TDWS_IDN_ORGN_COMP_DIST SMALLINT NOT NULL,
F1000_NM_BL2 VARCHAR(25) CHARACTER SET LATIN CASESPECIFIC NOT NULL)
UNIQUE PRIMARY INDEX R1000_UPI ( F1000_IDN_LOC_C ,F1000_PFX_C );
REPLACE TRIGGER GRAYBAR.TI_CUST_BILL_TO_1 ENABLED BEFORE
INSERT ON GRAYBAR.CUST_BILL_TO ORDER 1
REFERENCING NEW AS INCOMING
FOR EACH ROW WHEN (0 <>
INCOMING.F1000_IDN_NATL_ACC
)
(INSERT INTO GRAYBAR.CUSTOMER_MASTER (TDWS_IDN_C_COMP,
CMST_CDE_C_COMP_TYPE,
CMST_NM_C_MASTER)
VALUES (INCOMING.TDWS_IDN_C_COMP,
INCOMING.CMST_CDE_C_COMP_TYPE,
'SYSTEM INSERTED '););
*** Trigger has been created.
*** Total elapsed time was 1 second.
REPLACE TRIGGER GRAYBAR.TI_CUST_BILL_TO_1 ENABLED BEFORE
INSERT ON GRAYBAR.CUST_BILL_TO ORDER 1
REFERENCING NEW AS INCOMING
FOR EACH ROW WHEN (0 <>
INCOMING.F1000_IDN_NATL_ACC
)
(INSERT INTO GRAYBAR.CUSTOMER_MASTER (TDWS_IDN_C_COMP,
CMST_CDE_C_COMP_TYPE,
CMST_NM_C_MASTER)
VALUES (INCOMING.TDWS_IDN_C_COMP,
INCOMING.CMST_CDE_C_COMP_TYPE,
'SYSTEM INSERTED ' || current_date););
*** Trigger has been replaced.
*** Total elapsed time was 2 seconds.
REPLACE TRIGGER GRAYBAR.TI_CUST_BILL_TO_1 ENABLED BEFORE
INSERT ON GRAYBAR.CUST_BILL_TO ORDER 1
REFERENCING NEW AS INCOMING
FOR EACH ROW WHEN (0 <>
INCOMING.F1000_IDN_NATL_ACC
AND 0 =
(SELECT COUNT(*) FROM GRAYBAR.CUSTOMER_MASTER
WHERE GRAYBAR.CUSTOMER_MASTER.TDWS_IDN_C_COMP = INCOMING.TDWS_IDN_C_COMP
AND GRAYBAR.CUSTOMER_MASTER.CMST_CDE_C_COMP_TYPE = INCOMING.CMST_CDE_C_COMP_TYPE)
)
(INSERT INTO GRAYBAR.CUSTOMER_MASTER (TDWS_IDN_C_COMP,
CMST_CDE_C_COMP_TYPE,
CMST_NM_C_MASTER)
VALUES (INCOMING.TDWS_IDN_C_COMP,
INCOMING.CMST_CDE_C_COMP_TYPE,
'SYSTEM INSERTED ' || current_date););
*** Failure 3990 Table INCOMING is not specified in the FROM clause or
already aliased by another name. Statement# 1, Info =0
*** Total elapsed time was 1 second.
REPLACE TRIGGER GRAYBAR.TI_CUST_BILL_TO_1 ENABLED BEFORE
INSERT ON GRAYBAR.CUST_BILL_TO ORDER 1
REFERENCING NEW AS INCOMING
FOR EACH ROW WHEN (0 =
(SELECT COUNT(*) FROM
GRAYBAR.CUSTOMER_MASTER
WHERE GRAYBAR.CUSTOMER_MASTER.TDWS_IDN_C_COMP = INCOMING.TDWS_IDN_C_COMP
AND GRAYBAR.CUSTOMER_MASTER.CMST_CDE_C_COMP_TYPE = INCOMING.CMST_CDE_C_COMP_TYPE)
)
(INSERT INTO GRAYBAR.CUSTOMER_MASTER (TDWS_IDN_C_COMP,
CMST_CDE_C_COMP_TYPE,
CMST_NM_C_MASTER)
VALUES (INCOMING.TDWS_IDN_C_COMP,
INCOMING.CMST_CDE_C_COMP_TYPE,
'SYSTEM INSERTED ' || current_date););
*** Failure 3990 Table INCOMING is not specified in the FROM clause or
already aliased by another name. Statement# 1, Info =0
*** Total elapsed time was 1 second.
REPLACE TRIGGER GRAYBAR.TI_CUST_BILL_TO_1 ENABLED BEFORE
INSERT ON GRAYBAR.CUST_BILL_TO ORDER 1
REFERENCING NEW AS INCOMING
FOR EACH ROW WHEN (0 =
(SELECT COUNT(*) FROM GRAYBAR.CUSTOMER_MASTER
WHERE GRAYBAR.CUSTOMER_MASTER.TDWS_IDN_C_COMP = INCOMING.TDWS_IDN_C_COMP)
)
(INSERT INTO GRAYBAR.CUSTOMER_MASTER (TDWS_IDN_C_COMP,
CMST_CDE_C_COMP_TYPE,
CMST_NM_C_MASTER)
VALUES (INCOMING.TDWS_IDN_C_COMP,
INCOMING.CMST_CDE_C_COMP_TYPE,
'SYSTEM INSERTED ' || current_date););
*** Failure 3990 Table INCOMING is not specified in the FROM clause or
already aliased by another name. Statement# 1, Info =0
*** Total elapsed time was 1 second.
REPLACE TRIGGER GRAYBAR.TI_CUST_BILL_TO_1 ENABLED BEFORE
INSERT ON GRAYBAR.CUST_BILL_TO ORDER 1
REFERENCING NEW AS INCOMING
FOR EACH ROW WHEN (SELECT COUNT(*) FROM
GRAYBAR.CUSTOMER_MASTER
WHERE
GRAYBAR.CUSTOMER_MASTER.TDWS_IDN_C_COMP =
INCOMING.TDWS_IDN_C_COMP = 0
)
(INSERT INTO GRAYBAR.CUSTOMER_MASTER (TDWS_IDN_C_COMP,
CMST_CDE_C_COMP_TYPE,
CMST_NM_C_MASTER)
VALUES (INCOMING.TDWS_IDN_C_COMP,
INCOMING.CMST_CDE_C_COMP_TYPE,
'SYSTEM INSERTED ' || current_date););
*** Failure 3707 Syntax error, expected something like
a '(' between the '(' and 'SELECT'. Statement# 1, Info =153
*** Total elapsed time was 1 second.
REPLACE TRIGGER GRAYBAR.TI_CUST_BILL_TO_1 ENABLED BEFORE
INSERT ON GRAYBAR.CUST_BILL_TO ORDER 1
REFERENCING NEW AS INCOMING
FOR EACH ROW WHEN ((SELECT COUNT(*) FROM GRAYBAR.CUSTOMER_MASTER
WHERE GRAYBAR.CUSTOMER_MASTER.TDWS_IDN_C_COMP = INCOMING.TDWS_IDN_C_COMP) = 0
)
(INSERT INTO GRAYBAR.CUSTOMER_MASTER (TDWS_IDN_C_COMP,
CMST_CDE_C_COMP_TYPE,
CMST_NM_C_MASTER)
VALUES (INCOMING.TDWS_IDN_C_COMP,
INCOMING.CMST_CDE_C_COMP_TYPE,
'SYSTEM INSERTED ' || current_date););
*** Failure 3706 Syntax error: Did not expect the '=' that follows
the ')'. Statement# 1, Info =283
*** Total elapsed time was 1 second.
REPLACE TRIGGER GRAYBAR.TI_CUST_BILL_TO_1 ENABLED BEFORE
INSERT ON GRAYBAR.CUST_BILL_TO ORDER 1
REFERENCING NEW AS INCOMING
FOR EACH ROW WHEN (0 <>
INCOMING.F1000_IDN_NATL_ACC
AND 0 =
(SELECT COUNT(*) FROM GRAYBAR.CUSTOMER_MASTER, INCOMING
WHERE GRAYBAR.CUSTOMER_MASTER.TDWS_IDN_C_COMP =
INCOMING.TDWS_IDN_C_COMP
AND GRAYBAR.CUSTOMER_MASTER.CMST_CDE_C_COMP_TYPE = INCOMING.CMST_CDE_C_COMP_TYPE)
)
(INSERT INTO GRAYBAR.CUSTOMER_MASTER (TDWS_IDN_C_COMP,
CMST_CDE_C_COMP_TYPE,
CMST_NM_C_MASTER)
VALUES (INCOMING.TDWS_IDN_C_COMP,
INCOMING.CMST_CDE_C_COMP_TYPE,
'SYSTEM INSERTED ' || current_date););
*** Failure 5429 A triggered action statement contained an invalid
reference. Statement# 1, Info =0
*** Total elapsed time was 1 second.
| ||||||||||||||||||||||||||||||||||||||||||||||||
| | ||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||||||||||||||||||||
| Copyright 2016 - All Rights Reserved | ||||||||||||||||||||||||||||||||||||||||||||||||
| Last Modified: 15 Jun 2023 | ||||||||||||||||||||||||||||||||||||||||||||||||