How to update parent and child tables while updating parent table

I have a parent table EMPLOYEE which includes columns (sysid, serviceno,employeename...) sysid is Primary key, serviceno is Unique key and I have child table DEPENDENT includes columns (sysid,employee_sysid,name,dob...) here again SYSID is primary key for DEPENDENTS table, employee_sysid is Foreign key of EMPLOYEE table.
Now I want to change SYSID (using sequence) in EMPLOYEE table which need to be update in DEPENDENTS table as well
Note: I have 10000 records in EMPLOYEE table as well as I have 5 more child tables which need to update new SYSID.
please help me

first disable the FOREIGN KEY Constraints.
you can update Parent as well as Child record also with help of trigger.
here i am giving you one examlpe..it may help u.
create table parent(id number primary key,name varchar2(100))
create table child_1(id number primary key,p_id number,dob date,
CONSTRAINT FK_id FOREIGN KEY (p_id) REFERENCES parent (ID))
create table child_2(id number primary key,p_id2 number,addr varchar2(1000),
CONSTRAINT FK_id2 FOREIGN KEY (p_id2) REFERENCES parent (ID))
insert some test data to parent and child tables.
alter table child_2 disable constraint FK_id2
alter table child_1 disable constraint FK_id2
CREATE OR REPLACE TRIGGER delete_child
BEFORE UPDATE ON parent
FOR EACH ROW
BEGIN
UPDATE CHILD_1
SET P_ID=:NEW.ID
WHERE P_ID=:OLD.ID;
UPDATE CHILD_2
SET P_ID2 =:NEW.ID
WHERE P_ID2=:OLD.ID;
END;
then Upadte parent table primary key col and check the child tables.
then enable the constraints...

Similar Messages

  • Update column data to Upper Case in parent and child table

    Hi ,
    I am facing issue while updating column value to upper case in parent table and child table. How can i do that ?
    when updating parent row:
    ORA-02292: integrity constraint (XXXXXXXXXXXXXX_FK) violated - child record found
    When updatng corresponding child row:
    ORA-02291: integrity constraint (XXXXXXXXXXXXXXXX_FK) violated - parent key not found
    how can i update on both the places ?
    Regards,
    AA

    I am facing issue while updating column value to upper case in parent table and child table. How can i do that ?
    Why do you need to do that?
    That is just ONE of several questions you should answer before you start modifying your data.
    1. What is your 4 digit Oracle version? (result of SELECT * FROM V$VERSION)
    2. If both values are the same case what difference does it make what that case is?hen you don't need to alter your original data.
    3. What is the source of the column values you are using now? If you change your data to upper case it will no longer be identical to the source data.
    4. What is your plan for enforcing future values to be stored in UPPER case? Are you going to use a trigger? Have you written and tested such a trigger to see if it will even work the way you expect?
    5. Why aren't you using a surrogate key instead of a 'business' data item? You have just demonstrated one reason why surrogate keys can be useful: their actual value is NOT important.
    You should reexamine your problem and architecture and consider other alternatives.
    One alternative is to add a new 'surrogate key' column to use as the primary key. Just create a new sequence and use a trigger to populate the new column. Your current plans will require a trigger to perform the case conversion so instead of the just use the trigger to provide the value.
    If the change is being done to facilitate searching you could just add a VIRTUAL column UPPER_MY_COLUMN and index that instead. Then you could search on that new virtual column and the data values would still be identical to the original data source.

  • Insert data Flatfile table to Parent and child tables

    Hi All,
        I have Flatfile table which is we getting from daily txt files and i want to populate flatfile data to parent as well as child tables. parent table has primary key as ID. This ID is foreign key of child tables. 
    Here i have mentioned our process.
    1. Flatfile duplicates has to remove with condition of daily date.
    2. Before Insert parent table have to check duplicate(we have Unique key of 4 columns in parent) if duplicate is there we have to delete duplicate then Insert into parent table unique records(Primary key is ID).(here why we are delete duplicate record meaning
    we getting daily files so if any records updated in future that record should be insert to parent and child table so only we delete old records and insert new records).
    3.After insert parent we have to populate child tables from Flatfile table as well as we have to insert parent table primary key as foreign key of child tables.
    4. if any truncation error occurs that errors should go to error log table.
    Right now we are using cursor for this concept and cursor has performance issue. so we are trying to optimize other way to populate parent and child table to increase performance to populate.
    Please help us to which way to do this process increase of performance .
    Please  can any one reply.

    Hi RajVasu,
    Since this issue is related to Transact-SQL, I will move this thread to Transact-SQL forum. Sometime delay might be expected from the job transferring. Your patience is greatly appreciated. 
    Thank you for your understanding and support.
    Regards,
    Katherine Xiong
    Katherine Xiong
    TechNet Community Support

  • How to identify all the child tables referencing a master table

    Hi,
    How to identify all the child tables referencing a master table.
    Could you please help me...
    Thanks in advance...

    Hi!
    You may use this query:
    SELECT master.table_name, child.table_name
    FROM   user_constraints master, user_constraints child
    WHERE  master.table_name IN ('REGIONS')
      AND  master.constraint_name = child.r_constraint_name
    /yours sincerely
    Florian W.

  • Problem with Master and Child table

    Hi,
    Working in jdev 11.1.1.2.0. I have one strange issue. i have master and child tables, the model is working fine with the view link. but when drag drop the same into my jsff. when i query the result 1st time 2 tables are refershing properly and data is coming. but the when i trying to select another row in the 1st table my 2nd table(child table) is not refreshing.
    i put partial trigger of the 2nd table as 1st table id.
    can any one help wht is issue here.
    Edited by: user5802014 on Jul 15, 2010 3:44 PM

    Check this post might help you
    http://baigsorcl.blogspot.com/2010/03/creating-master-detail-form-in-adf.html

  • How can I copy and paste table cells from Pages into InDesign with minimum reformating?

    How can I copy and paste table cells from Pages into InDesign with minimum reformating?

    Do you mean you want to retain the formatting from Pages, or retain formatting already applied in ID?

  • How to link EKBE and MKPF tables

    HI all
    plz help me,
    how to link EKBE and MKPF tables
    thanks
    ramesh redddy

    HI,
    EKPO-EBELN =  EKKO-EBELN  has Purchase Documnet no.
    MSEG=MBLNR = MKPF-MBLNR  has material document no
    Link MSEG-EBELN =  EKPO-EBELN ( MSEG purchase prder no and EKPO purhcase document no.)
    and you should have to add one  more table MSEG which is provide three table.
    check this link
    EKPO-EBELN = EKKO-EBELN
    MSEG-EBELN =  EKPO-EBELN
    MSEG=MBLNR = MKPF-MBLNR
    regards,
    PK.

  • How to access RT and CRT tables

    Hi experts can any one guide me how to view RT and CRT Tables.
    How to access RT and CRT tables.
    Is there any Tcode existing to access these.
    Thanks in advance
    Regards
    vamsi.

    Hi Vamsi,
    1) You can use the function module : CU_READ_RGDIR
    In this function module you can pass PERNR and you can get SEQNR(Sequence No) or you can take the sequence no from any transparent table also.
    2)After getting the sequence NO Pass the employee NO and Sequence NO in the function module : PYXX_READ_PAYROLL_RESULT.
    From this function module you can get the RT,BTand CRT Table results.
    Thanks and Regards
    Partha

  • Update key in parent and child tables

    Situation:
    Parent table (p) has a PK, p.parent_id. Child table (c) has a FK c.parent_id which, of course, points back to PK, p.parent_id.
    I need to UPDATE the key in both tables but I am concerned about throwing a FK constraint violation. How does one get around this? Does one update the child first then the parent or vice versa? Seems either way a FK violation will occur...
    thank u.

    1) If you ever anticipate wanting to update a key, that key should not be the primary key of a table. Primary keys should be immutable. If this is going to happen with any regularity, you need to re-examine the underlying data model.
    2) If the constraints were declared to be deferrable, you would simply mark them as deferred, update both tables, and commit (at which point the constraint would be validated). If the constraints were not declared to be deferrable, you will probably need to end up dropping and re-creating one or the other (presumably as a deferrable constraint this time).
    Justin

  • How to filter parent and child tables data in impdp?

    Hi Friends,
    i hope everyone doing good..
    I have two tables in my schema like below.
    STUDENT_DTLS:-
    SID Sname CID
    1     venkat     001
    2     uppy     002
    3     deepu     003
    4     trinath     003
    5     naveen     004
    6     ramesh     005
    COURSE_DTLS:-
    CID CNAME Fee
    001     Oracle     2000
    002     java     6000
    003     sieble     4000
    004     informatica     3000
    005     obiee 4000
    if I load only few Student details say sid=1,2,3 into another environment using impdp,corresponding to those students course details from COURSE_DTLS table only need to be loaded.Not all course details.
    Iam Expecting Result in new schema as below:-
    SID Sname CID
    1     venkat     001
    2     uppy     002
    3     deepu     003
    CID CNAME Fee
    001     Oracle     2000
    002     java     6000
    003     sieble     4000
    But when i am using the below import scrit,The COURSE_DTLS is loading first and its query option(select cid from STUDENT_DTLS) is returning no rows.Because at that time no data is insertred into STUDENT_DTLS yet.
    secondly it is importing data into STUDENT_DTLS with query option where sid=in (1,2,3) which is loaded propelry.
    Thirdly it is trying to enable primary key and Foreign key constraints which is also failing because of no data in COURSE_DTLS table.
    i have changed the order of tables in TABLES clause like tables=COURSE_DTLS ,STUDENT_DTLS.But still COURSE_DTLS table is loading first.
    impdp pa_data_sub/******* NETWORK_LINK=qdssih30 tables=STUDENT_DTLS,COURSE_DTLS query='STUDENT_DTLS:"where SID IN(1,2,3)"','COURSE_DTLS:"where cid in(select cid from STUDENT_DTLS)"', CONTENT=all table_exists_action=replace directory=DATA_PUMP_DIR logfile=exp_join.log
    output:
    Total estimation using BLOCKS method: 128 KB
    Processing object type TABLE_EXPORT/TABLE/TABLE
    . . imported "PA_DATA_SUB"."COURSE_DTLS" 0 rows
    . . imported "PA_DATA_SUB"."STUDENT_DTLS" 3 rows
    Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
    Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
    Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
    ORA-39083: Object type REF_CONSTRAINT failed to create with error:
    ORA-02298: cannot validate (PA_DATA_SUB.SYS_C0040905) - parent keys not found
    Failing sql is:
    ALTER TABLE "PA_DATA_SUB"."STUDENT_DTLS" ADD FOREIGN KEY ("CID") REFERENCES "PA_DATA_SUB"."COURSE_DTLS" ("CID") ENABLE
    Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
    Job "PA_DATA_SUB"."SYS_IMPORT_TABLE_01" completed with 1 error(s) at 17:28:13
    Please suggest me how to achieve this task in a single import command?
    Is there any option in impdp to prioritize the table to be loaded first?
    Thanks,
    Venkat Vadlamudi

    You can't be guaranteed which order the data will be loaded in, so using a query that examines a table that is being imported is not going to always work the way you want it. The failing constraints makes sense because there is no data.
    So, in your case, course_dtls gets imported first and the table student-dtls exists, but it not populated yet, so the select cid from student_dtls comes back with 0 rows. The second query works fine.
    You might be able to change the query to be:
    'COURSE_DTLS:"where cid in(select cid from STUDENT_DTLS@qdssih30 where SID IN(1,2,3)"'
    This way, you query the source table pointed to by the network link and you use the same subquery from the first table.
    This should work for you... I think anyway.
    Dean

  • DB Adapter wizard – WHERE clause on parent and child tables not working.

    I have two tables, SECURITY and SECURITY_POSITIONS, where SECURITY has a 1:M relationship with SECURITY_POSITIONS. I used the DB-adapter wizard to create the relationship and the following WHERE clause expression which is looking at both the parent and the child tables;
    The expression builder looks like this:
    AND
    |--- 1. partitionKey EQUAL p_SearchKey
    |--- 2. securityType EQUAL “DBT”
    |--- 3. securityPositionsCollection.dealReference EQUAL “NA”
    The primary key on SECURITY = PARTITION_KEY and SECURITY_REFERENCE
    The foreign key from SECURITY_POSITIONS to SECURITY = PARTITION_KEY and SECURITY_REFERENCE
    securityType is on SECURITY table (master)
    securityPositionsCollection.dealReference is on SECURITY_POSITIONS table (child)
    The invoke on the database adapter is selecting a row in securityPositionsCollection for each child row, rather than just those with dealReference = “NA”!
    I turned on DEBUG logging in the BPEL console and I can see that there are 2 SELECT queries run (guess this is how Toplink does it!), where the 1st query appears to select the parent rows and the 2nd query selects the child rows.
    However the 2nd query is not working because it is failing to select only those child rows where dealReference = “NA”. Also, don’t know why the 2nd SELECT query needs to specify the child SECURITY_POSITIONS table twice in the FROM clause, because that seems to be causing the problem.
    1st query executed is as follows;
    SELECT DISTINCT t0.PARTITION_KEY, t0.SECURITY_REFERENCE, t0.SECURITY_TYPE
    FROM CENTRAL.SECURITY t0, CENTRAL.SECURITY_POSITIONS t1
    WHERE ((((t0.PARTITION_KEY = ?) AND (t0.SECURITY_TYPE = ?)) AND (t1.DEAL_REFERENCE = ?)) AND ((t1.SECURITY_REFERENCE = t0.SECURITY_REFERENCE) AND (t1.PARTIT
    ION_KEY = t0.PARTITION_KEY)))
    bind => [200706200000, DBT, NA]
    2nd query executed is as follows, where child table appears twice! ;
    SELECT DISTINCT t0.DEAL_REFERENCE, t0.PARTITION_KEY, t0.SECURITY_REFERENCE
    FROM CENTRAL.SECURITY_POSITIONS t0,
    CENTRAL.SECURITY_POSITIONS t2,
    CENTRAL.SECURITY t1
    WHERE ((((t0.SECURITY_REFERENCE = t1.SECURITY_REFERENCE) AND (t0.PARTITION_KEY = t1.PARTITION_KEY)) AND
    (((t1.PARTITION_KEY = ?) AND (t1.SECURITY_TYPE = ?)) AND
    (t2.DEAL_REFERENCE = ?))) AND
    ((t2.SECURITY_REFERENCE = t1.SECURITY_REFERENCE) AND
    (t2.PARTITION_KEY = t1.PARTITION_KEY)))
    bind => [200706200000, DBT, NA]
    Anyone experienced the same problem e.g. why is toplink making the query more complicated that it needs to be, because the query only needs to reference the SECURITY_POSITIONS table once, as follows;
    SELECT DISTINCT t0.DEAL_REFERENCE, t0.PARTITION_KEY, t0.SECURITY_REFERENCE
    FROM CENTRAL.SECURITY_POSITIONS t0,
    CENTRAL.SECURITY t1
    WHERE ((((t0.SECURITY_REFERENCE = t1.SECURITY_REFERENCE) AND (t0.PARTITION_KEY = t1.PARTITION_KEY)) AND
    (((t1.PARTITION_KEY = '200706200000') AND (t1.SECURITY_TYPE = 'DBT')) AND
    (t0.DEAL_REFERENCE = 'NA'))) AND
    ((t0.SECURITY_REFERENCE = t1.SECURITY_REFERENCE) AND
    (t0.PARTITION_KEY = t1.PARTITION_KEY)))

    Hello,
    It looks like you have configured your 1:M relationship to use batch reading. This causes the query to bring in the Security_Position table's objects to use the same selection criteria as was used on the initial query, with a join statement. This is more efficient in most cases as it ensures only the Security_positions needed for the Security objects to be fully built are read, in a single query.
    The selection criteria added is only used to filter out the Security objects. All referenced Security_Positions must be read in for the returned Security objects so that the data matches what is in the database. If you do not want the Security_Positions, you might try using indirection on the mapping which will delay the second query until you need the Security_Positions. Or, if you want only the Security_Positions with dealReference EQUAL “NA", you could do a query specifically to filter on them.
    Best Regards,
    Chris

  • Delete entries over 1 month old in parent  and child tables

    Hi guys,
    Im new to oracle (2days old) and im struggling to find out how to delete all entries over 1 month old in a database but also delete entries from the child table. I have read about delete cascading etc but im really strugging at the moment. Any tip or ideas? thank you

    You just need to delete data in parent table using the right WHERE clause that requires some timestamp column that stores data age. If the foreign key constraint is created with ON DELETE CASCADE child rows are automatically deleted.
    Assuming P is the parent table and C the child table and the timestamp column is stored in the parent table here is an example.
    SQL> create table p(px int primary key, d date);
    Table created.
    SQL> create table  c(cx int, cy int references p on delete cascade);
    Table created.
    SQL>
    SQL> insert into p values(1, '01/01/2011');
    1 row created.
    SQL> insert into p values(2, '15/01/2011');
    1 row created.
    SQL> insert into p values(3, '31/01/2011');
    1 row created.
    SQL> insert into c values(10,1);
    1 row created.
    SQL> insert into c values(20,2);
    1 row created.
    SQL> insert into c values(30,3);
    1 row created.
    SQL> commit;
    Commit complete.
    SQL>
    SQL> delete p where months_between(sysdate, d) >= 1;
    2 rows deleted.
    SQL>
    SQL> select * from p;
            PX D
             3 31-01-2011
    SQL> select * from c;
            CX         CY
            30          3
    SQL>Edited by: P. Forstmann on 15 févr. 2011 13:45

  • Delete the parent records and child table records at a time

    hi all;
    I am facing the pbm like to delete the all records in child table and corresponding records in parent table at a time. so I want to delete the all the records in child table and corresponding parent records in parent table by using single SQL query. plz help me
    Thanks in advance

    You want to use one single SQL statement to delete the child records in a table and the corresponding master records in the master table??
    That's not quite possible with a single SQL, of course unless you are talking about Oracle Forms, where you have a relation and set the delete behavior to Cascading, like said in the above posts.
    Tony

  • Extension of connecting mater and child tables

    Initial Question:
    Need help in SQL :
    I have master table name called : AA
    Data is having :
    Date Display Name
    =====================
    10/3/2009 Q3 2009
    1/3/2010 Q4 2009
    1/13/2010 Q1 2010
    4/4/2009 Q1 2009
    7/4/2009 Q2 2009
    I have Child Table
    ===============================
    ID Date Name
    =======================================
    101 10/3/2009 AAAAA
    101 1/3/2010 AAAAB
    =====================================
    Reporting purpose, I need to have data in child table for every quarter.
    Problem is : I dont have data in child table for every quarter date.
    How I want : I want to create a view, which has data of child table along with all quarters, so that I can use that view in my report.
    Data I want in view :
    ID Date Name
    =======================================
    101 10/3/2009 AAAAA
    101 1/3/2010 AAAAB
    101 1/13/2010 NOT PRESENTED ( NEW ROW)
    101 4/4/2009 NOT PRESENTED ( NEW ROW)
    101 7/4/2009 NOT PRESENTED ( NEW ROW)
    I dont want to create any procedure for this, because evey time need to run the procedure to populate data in the view / table
    New Question: : I have got another parent for Child for ID's : Ex : 101
    Another Parent table: AP
    =====================
    ID
    =============
    101
    102
    103
    I want to show every quarter to this ID as well Child. ( I can partition from this id, but I need some data from Child also.)
    Data I want in view :
    ID Date Name
    =======================================
    101 10/3/2009 AAAAA
    101 1/3/2010 AAAAB
    101 1/13/2010 NOT PRESENTED ( NEW ROW)
    101 4/4/2009 NOT PRESENTED ( NEW ROW)
    101 7/4/2009 NOT PRESENTED ( NEW ROW)
    102 10/3/2009 NOT PRESENTED ( NEW ROW)
    102 1/3/2010 NOT PRESENTED ( NEW ROW)
    102 1/13/2010 NOT PRESENTED ( NEW ROW)
    102 4/4/2009 NOT PRESENTED ( NEW ROW)
    102 7/4/2009 NOT PRESENTED ( NEW ROW)
    103 10/3/2009 NOT PRESENTED ( NEW ROW)
    103 1/3/2010 NOT PRESENTED ( NEW ROW)
    103 1/13/2010 NOT PRESENTED ( NEW ROW)
    103 4/4/2009 NOT PRESENTED ( NEW ROW)
    103 7/4/2009 NOT PRESENTED ( NEW ROW)
    Thanks in advance

    Hi,
    Is this the same problem as: Need data in Child table based on master table
    Please don't post the same question more than once.
    Sometimes, if you've made a question very confusing, it may be good to start over with a better-worded question (not the exact same one). In that case, mark the original thread as "Answered", so all replies will be posted in one place.
    This site can be flaky, and it's possible to accidentally post a new question when you thought you were updating an old one.
    It that's what happened in this case, mark either one of the threads as "Answered" now, and we'll continue with the other one.
    Whenever you have a problem, post a little sample data (CREATE TABLE and INSERT statements, relevant columns only) from all tables, and the results you want from that data.

  • How to identify fact and dimension tables

    Hi ,
    We are having the list of parent child relation info for each database tables. Based upon the parent child tables ,needs to identify which table is fact ,which table is dimension .Could you please help me how to identify the fact table and dimensions tables ?
    Thanks in advance

    Hi,
    Refer this link........
    http://www.oraclebidwh.com/2007/12/fact-dimension-tables-in-obiee/
    Please mark if it helps you.......

Maybe you are looking for