Heeeeelp - on update cascade

hi all
I posted the same question inn this forum but did not get any answer i'll try again in this post
my problem is that i created my tables in the database without on delete cascade on the foreign constraint and now 'm trying to modify that
I dropped the old foreign constraint and created new one with "on delete cascade" this worked fine for one table but when i came to the other tables it gave me this error:
ORA-02443:cannot drop constraint - constraint unavailable
but I'm sure the constraint with the name i used is available !!!
what are your suggestions???
another problem:
how to implement on update cascade in Oracle?
I found a solution in http://asktom.oracle.com/tkyte/update_cascade/index.html#download
but I don't know how to use , if someone knows please help
Thanks in advance

1 .
select constraint_type,constraint_name from user_constraints where table_name='<TABLE_NAME>' and
see if the constraint name that you are trying to delete exists.

Similar Messages

  • It's possible ON UPDATE CASCADE in table relationships?

    Hi, how are you?
    Sorry my weak English, I'm brazilian.
    I like create an "ON UPDATE CASCADE" in my table relationship but find only "ON DELETE CASCADE" in Oracle 9i Database Online Documentation.
    I would like your help.
    Thank you.
    Eduardo A. Reche Lopes
    Team T.I.

    Tom Kyte wrote a package for this:
    Generates needed package and triggers to support update cascade in Oracle without removing or infringing on DECLARITIVE RI.
    This package supports:
    - Tables with multi-part primary keys (primary key(a,c,b))
    - Update cascade to many child tables from one parent
    - Self-referencing integrity such as that found in the SCOTT.EMP table (mgr->empno)
    - Is completely application transparent. The application does not know it is happening
    - Versions 7.0 and above of the database.
    - Tuned and optimized to fully avoid full table scans on all tables (complete with utility to show you un-indexed foreign keys in a schema, Cascading an update to un-indexed foreign keys can be bad).

  • ON UPDATE CASCADE and Autoincrement primary key with Oracle SQL Developer

    hello everybody,
    I want to know if Oracle SQL Developer manage autoincrement on primary key and "ON UPDATE CASCADE" when i migrate (with data) SQL Server database in Oracle database.
    Can you help me ?
    Thanks for your suggestions.

    Obtain the value of the auto increment key with the getGeneratedKeys() method.
    Statement stmt = null;
    ResultSet rs = null;
    stmt = conn.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY,
    stmt.executeUpdate("DROP TABLE IF EXISTS autoIncTable");
                "CREATE TABLE autoIncTable ("
                + "priKey INT NOT NULL AUTO_INCREMENT, "
                + "dataField VARCHAR(64), PRIMARY KEY (priKey))");
                "INSERT INTO autoIncTable  (dataField) "
                + "values ('data field value')",
    int autoIncKeyFromApi = -1;
        rs = stmt.getGeneratedKeys();
        if (rs.next()) {
            autoIncKeyFromApi = rs.getInt(1);
        } else {

  • APEX DB: Not accepting the constraint ON UPDATE CASCADE

    My schema tables is not accepting the ON UPDATE CASCADE constraint as it was accepting the ON DELETE CASCADE constraint. My use case is to update the records in the child tables, when a PK of parent table is modified/updated. Please help.

    Boy this question could spark a huge debate about relational theory and the merits of allowing the update of a primary key... But instead of stirring the pot, I'll answer your question. :-)
    Unfortunately Oracle does not support the ON UPDATE CASCADE constraint that PostgreSQL and other databases do.
    You might look at [this discussion|http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:5773459616034] on ASK TOM where he talks about the merits and references a couple ways you can achieve similar things in Oracle.
    Hope That Helps,
    - Doug -

  • How to migrate ACCESS2000 ON UPDATE CASCADE to ORACLE 8i ?

    Hi all,
    I use ON UPDATE CASCADE constraint in ACCESS database.
    When I use the Access WorkBench, ORACLE Said that ON UPDATE
    CASCADE are not supported.
    Is there any solution ?

    Check <a href="https://websmp209.sap-ag.de/osdbmigration">OS-DB-Migration Site in SAP Service Marketplace</a>
    Here (Goto Media Library) you'll also find the actual <a href="https://websmp209.sap-ag.de/~sapidb/011000358700002608772002E.pdf">SAP OS/DB Migration Check Planning Guide</a>
    After checking out the ressources mentioned above you can't be more specific...


    Does ORACLE 8 supports UPDATE CASCADE feature,
    if so, please explain it to me.
    Sundaram Ganesh

    i have execute privilage...
    i get this error when dbms_sql.parse is called int he execute_immediate.
    procedure execute_immediate
        exec_cursor     integer default dbms_sql.open_cursor;
        rows_processed  number  default 0;
        if ( use_dbms_output ) then
            dbms_output.put_line( '/' );
            dbms_sql.parse(exec_cursor, sql_stmt, dbms_sql.native );        rows_processed := dbms_sql.execute(exec_cursor);
            dbms_sql.close_cursor( exec_cursor );
            substr( sql_stmt, 2, instr( sql_stmt,chr(10),2)-2 ) );
            sql_stmt := NULL;
        end if;
        when others then
          if dbms_sql.is_open(exec_cursor) then
          end if;
    end;it tries to create a package. and i have given create any procedure privialge also.

  • For Update Cascade

    I am migrating from SQL2k to oracle9i.What is the best alternative fr this constraint."For Update Cascade"

    Not recommended, but look here for an answer.

  • Access update cascade ref constraint question

    Access allows the definition of update cascade referential
    constraints. This type of constraint is not allowed to be
    defined declaratively in Oracle, but can be implemented using
    trigger code. Does the Access module in Migration Workbench
    create the required triggers to enforce update cascade

    Well, there is no UPDATE CASCADE clause supported in Oracle.
    You can refer to following link from Tom Kyte as to how you can implement the UPDATE CASCADE.

  • Best Practices to update Cascading Picklist mapping for Account record type

    1. Most of the existing picklist values name in parent and related picklist has been modified in external app master list, so the same needs to be updated in CRMOD.
    2. If we need to update picklist value, do we need to DISABLE the existing value and CREATE a new picklist.
    3. Is there any Best Practices to avoid doing Manual Cascading picklist mapping for Account record type? because we have around 500 picklist values to be mapped with parent and related picklist.

    Mahesh, I would recommend disabling the existing values and create new ones. This means manually remapping the cascading picklists.

  • Avoid report refresh when updating cascade parameters

    I have a report with 3 cascade parameters. The first parameter, region, is independent. The second parameter, zone, depends on region. The third parameter, store, depends both on region and zone. These are multi value parameters. The report is
    viewed directly in the "/reports" URL, so there are no custom applications that can modify it.
    I have a data set for each parameter and obviously use parameters to limit the results of the second and third paramters. My user doesn't want the page to refresh after you set the first and second parameter. I'm not sure that's possible because it's a native
    reporting services action. 
     I've tried to bring all the results in second and third datasets and use filters based in the previous parameter, but the lists go blank even though the "Always refresh" property of the parameter is selected.
    Is there a NATIVE way to avoid the page from refreshing? 

    Hi Dany,
    According to your description, you want avoid the second parameter and third parameter to be refresh after change the value on the first parameter, right? In Reporting Services, the report will reload after the parameters value were changed no matter the parameter
    is a cascading parameter or not. This is default setting, so as Martina said, your requirement cannot be achieved currently. 
    Besides, if you have any concerns about this feature, you can submit a feedback at http://connect.microsoft.com/SQLServer/Feedback and hope it is resolved in the next release of service pack or product.
    Thank you for your understanding.
    Charlie Liao
    Charlie Liao
    TechNet Community Support

  • Update statement cascade

    How can I easily update foreignkeys ?
    When I 'm trying to update some keys in table a for example, I get the foreignkey error (ORA-02292: integrity constraint ).
    Is there a way to create a procedure to do this?
    tnx in advance

    A: update statement cascade

    An example of update cascade trigger.
    Original is written in Japanese language (OTN Japan)
    Example of questions (Homework?):
    create table dept2 as select * from scott.dept;
    alter table dept2 add (constraint pk_dept2 primary key (deptno));
    create table emp2 as select * from scott.emp;
    alter table emp2
      add (constraint pk_emp2 primary key (empno));
    alter table emp2
      add (constraint fk_emp2_dept2 foreign key (deptno)
                references dept2(deptno) on delete cascade);
    insert into emp2(empno,ename,deptno) values (9999,'NO DEPTNO',null);I have two tables above defined and added one data.
    I want to update emp2.deptno automatically on updating dept2.deptno.
    For example, on updating with 'update dept2 set deptno=35 where deptno=30',
    I want to update only following 6 rows, but don't want to update the row on empno=9999,deptno is null.
    SQL> select deptno,empno,ename from emp2 where deptno=30;
            30       7499 ALLEN
            30       7521 WARD
            30       7654 MARTIN
            30       7698 BLAKE
            30       7844 TURNER
            30       7900 JAMES
    6 rows selected.Additionally, I want to accomplish it on whether deferrable or not.
    Answer Example:
    create or replace
    package emp2_pack
      type type_table_emp is table of emp2.empno%type index by binary_integer;
      upd_value type_table_emp;
    create or replace
    trigger trg_dept2_before_upd
    before update of deptno on dept2
    for each row
      update emp2 e
         set deptno = null
        where e.deptno = :old.deptno
      returning empno
      bulk collect into emp2_pack.upd_value;
    create or replace
    trigger trg_dept2_after_upd
    after update of deptno on dept2
    for each row
      forall p_empno in emp2_pack.upd_value.first..emp2_pack.upd_value.last
         update emp2 e set e.deptno = :new.deptno
          wher... [Show more]

    Read other 3 answers

  • Cascade Update Manually

    If I want to update a Primary Key to a new value and there are existing references to it in a Foreign table, and I do not have On UPDATE CASCADE, how can I accomplish this?
    do I have to delete all the child records, update the parent's primary key, and then insert the child records again w/ the updated primary key?

    Please post DDL, so that people do not have to guess what the keys, constraints, Declarative Referential Integrity, data types, etc. in your schema are. Learn how to follow ISO-11179 data element naming conventions and formatting rules. Temporal data should
    use ISO-8601 formats. Code should be in Standard SQL as much as possible and not local dialect. 
    This is minimal polite behavior on SQL forums. 
    >> If I want to update a PRIMARY KEY to a new value and there are existing references to it in a Foreign [sic: referencing] table, and I do not have ON UPDATE CASCADE, how can I accomplish this? <<
    Alter your table and add the constraint. If you missed this one, look  for more design errors and commissions. 
    >> do I have to delete all the child [sic: referencing] records [sic: rows], update the parent's [sic: referenced] primary key, and then insert the child [sic] records [sic]again w/ the updated primary key?<<
    You need to learn basic terms and concepts! And t kick the guys that forgot this in the first place. 
    --CELKO-- Books in Celko Series for Morgan-Kaufmann Publishing: Analytics and OLAP in SQL / Data and Databases: Concepts in Practice Data / Measurements and Standards in SQL SQL for Smarties / SQL Programming Style / SQL Puzzles and Answers / Thinking
    in Sets / Trees and Hierarchies in SQL

  • Updating PK with same value - effect on CASCADE UPDATE

    I would like to understand how sql server 2008 deals with cascade updates
    For example I have
    Parent table: Employee with column Id as varchar(20) primary key
    Child table with IdEmployee as varchar(20) foreign key
    I set up Cascade Update for those two tables, meaning any change to primary key in Employee table will cause update in child table rows that match affecting Id
    Scenario 1:
    Update Employee
    set Id = 'ABC',
    Name = 'something new'
    where Id = 'CCC'
    Result of child table: all rows with foreign key IdEmployee and value of 'CCC' are updated. Expected behavior.
    Scenario 2:
    Update Employee
    set Id = 'ABC',
    Name = 'something new 2'
    where Id = 'ABC'
    This time, i am doing something different. I am beside update of column Name with new value, also update primary key but
    with SAME value
    Question is: what is going to happen to child rows? Are they ALL going to UPDATE due to CASCADE UPDATE
    So far, what i did in order to find solution is:
    1. I put an timestamp column in child table that should update each time row gets updated
    2. I put a trigger for update event on child table that will write something to some log table
    *After I set up those two I ran example like above just to be sure timestamp gets changed as well trigger is being fired
    Results of updating PK with same value:
    1. Timestamp didnt change
    2. Trigger didnt fire
    Is this enough to make conclusion that updating primary key with same value ALONG with updating some other columns won't
    affect child tables with UPDATE CASCADE ON
    Database is CI AS collation
    If i do following
    Update Employee
    set Id = 'abc',
    Name = 'something new'
    where Id = 'ABC'
    1. Timestamp will change
    2. Trigger will fire
    Conclusion: Case sensitive is important here!
    Thank you very much in advance

    >>  would like to understand how sql server 2008 deals with cascade updates <<
    Your posting has a number of conceptual errors. 
    1. The terms “parent” and “child” are not RDBMS; they are used in network databases. We have “referenced” and “referencing” tables; they can be the same table.
    2. A table models a SET of things, so there is no “Employee” table unless you truly have a one-man company. We want a collective or plural name for the SET/table. A better name is “Personnel” for this table. 
    3. Her is no such thing as a generic “id” in RDBMS; it has to be “<something in particular>_id” to be valid. Identifiers are usually fixed length 
    4. It is very, very rude not to post DDL on a forum. You also do not know the ISO-11179 Rules for data element names. They do not change names from table to table! Does your name change whenever you use it in a new place?? NO! Same principle with data. 
    5. The ISO standard uses “<property>_<attribute property>” syntax, no the old PascalCase.
    6. Why did you post a useless narrative? How do we compile “I SET up Cascade UPDATE for those two tables,..” to test it?? 
    CREATE TABLE Personnel
    (emp_id CHAR(20) NOT NULL PRIMARY KEY,
     emp_name VARCHAR(25) NOT NULL,
    CREATE TABLE Health_Plan
    (health_plan_acct CHAR(20) NOT NULL PRIMARY KEY,
     emp_id CHAR(20) NOT NULL 
     REFERENCES Personnel(emp_id)
    Scenario 1:
    UPDATE Personnel
       SET emp_id = 'ABC',
           emp_name = 'something new'
     WHERE emp_id = 'CCC';
    Result of child table: all rows with foreign key emp_id and value of 'CCC' are updated. Expected behavior.
    Scenario 2:
    UPDATE Personnel
       SET emp_id = 'ABC',
           emp_name = 'something new 2'
     WHERE emp_id = 'ABC';
    This time, I am doing something different. I am beside UPDATE of column emp_name with new value, also UPDATE PRIMARY KEY but
    with SAME value.
    >> Question is: what is going to happen to child [sic: referencing]  rows? Are they ALL going to UPDATE due to CASCADE UPDATE. <<
    SQL uses a set-oriented model, so the whole table is updated as a unit of work in theory. 
    So far, what I did in order to find solution is:
    >> I put an timestamp column in child [sic: referencing] table that should UPDATE each time row gets updated <<
    Why? It is not in the SET clause list; it cannot change. As an aside,  The T-SQL TIMESTAMP is not the ANSI/ISO TIMESTAMP; it is DATETIME2(n) in T-SQL. The old TIMESTAMP is being deprecated because it stinks both in concept and implementation. 
    >> I put a trigger for UPDATE event on child [sic: referencing] table that will write something to some log table.<<
    TRIGGERs are fired by what is called a “database event” shown in the ON [DELETE | UPDATE] clause. T-SQL adds INSERT as an event. An update to any value or to no value at all is still an update. Depending on the collation, case may or may not matter in the final
    --CELKO-- Books in Celko Series for Morgan-Kaufmann Publishing: Analytics and OLAP in SQL / Data and Databases: Concepts in Practice Data / Measurements and Standards in SQL SQL for Smarties / SQL Programming Style / SQL Puzzles and Answers / Thinking
    in Sets / Trees and Hierarchies in SQL

  • Problem on DELETE CASCADE

    my following tables not allow me to delete the parent table student and the corperate recode in child table also get delete , why
    create table Student(       student_id  int(10) not null  ,       sure_name VARCHAR(25)  not null,       english_name Varchar(25) default null,       chinese_name varchar(35) CHARACTER SET utf8 COLLATE utf8_general_ci not NULL,       student_hkid  varchar(12) not null,       address varchar(100) default null,       mobile_No  varchar(15) default null,       home_Telephone  varchar(15) default null,       email    varchar(20) not null,       faculty  varchar(70) default null,       department varchar(100) default null,       local_student varchar(3) default 'No',       fresh_student varchar(3) default 'No',       fulltime_student varchar(3) default 'No',       first_Ustudent varchar(3) default 'No',        userIp  VARCHAR(45)  not NULL,       accessTime  VARCHAR(45)  not NULL,       primary key(student_id))TYPE=MyISAM CHARACTER set utf8; create table Student_financial_info(   student_id  int(10) not null,   grant_loan varchar(3) default 'No',   uploadfile  text default null,   notification_time varchar(10) default null,   father_name  varchar(25) default null,   father_HKID  varchar(12) default null,   father_Salary decimal(6,2) ,   father_live_together varchar(3),   mother_name  varchar(25) default null,   mother_HKID  varchar(12) default null,   mother_Salary decimal(6,2) ,   mother_live_together varchar(3),   1th_sibling_name  varchar(25) default null,   1th_sibling_HKID  varchar(12) default null,   1th_sibling_Salary decimal(6,2) ,   1th_sibling_together varchar(3),   2th_sibling_name  varchar(25) default null,   2th_sibling_HKID  varchar(12) default null,   2th_sibling_Salary decimal(6,2) ,   2th_sibling_together varchar(3),   3th_sibling_name  varchar(25) default null,   3th_sibling_HKID  varchar(12) default null,   3th_sibling_Salary decimal(6,2) ,   3th_sibling_together varchar(3),   4th_sibling_name  varchar(25) default null,   4th_sibling_HKID  varchar(12) default null,   4th_sibling_Salary decimal(6,2) ,   4th_sibling_together varchar(3),   addition_income Varchar(200) default null,   primary key(student_id ),   FOREIGN KEY(student_id) REFERENCES student(student_id) ON DELETE CASCADE ON UPDATE CASCADE)TYPE=MyISAM CHARACTER set utf8;

    HJava wrote:
    hi thank you!
    I change my table Engine under Mysql Query Browser, but Foreign Key settinis not action at all ( thank you you mention the foreign key is ignore), quite stronge for me, I have to drop the table and change the table engine to InnoDB in my create table code and run it under command line client,
    now, It work.
    are there any different to  use command line Client and Mysql Query Brower?
    thank you!Not really, other than appearance. But, the "GUI" might let you simply change the type of table on an already created database (I don't know, haven't tried it), unfortunately, that won't activate any foreign keys when changing a MyISAM to InnoDB (although it will destroy keys on an InnoDB when changing to MyISAM), as, like the above quote says, the keys are not only not used, they are not even stored. I.E. MySQL no longer even knows, nor cares, that you even attempted to create a foreign key for that table. So, you must drop and recreate the table, you can't simply "change" it. Although you could change it (if the GUI even does this) and then add the foreign key constraints.

  • Update a primary key and Fk

    I have to update a primary key (PK) which is referenced by many foreign keys (FK).
    The primary key columns cannot be updated as this would orphan the dependant tables,
    and the dependant tables cannot be updated prior to the parent table as this would also make them orphans.
    I think this problem was solved by disabling the foreign key constraints or deleting the original records and recreating them.
    Since neither of these solutions is particularly satisfactory for me I read about 'deferred constraints'.
    My question is:
    Can I use(modify to) 'INITIALLY DEFERRED' keyword on constraints's table already created with The default, INITIALLY IMMEDIATE ,
    that is, update my primary key and foreign keys, and then re-set to
    'INITIALLY IMMEDIATE'? Or another trick exists ?
    Thanks in advance for your attention

    It is very popular the idea that the updates on primary key columns are a very bad thing.
    Oracle supports this idea and that's why they don't give the "on update cascade" clause on foreign keys.
    So in this case I suggest you to define a master table like this.
    create table master_table (
         key_id number primary key,
         your_primary_key varchar2 not null unique
    /Then you must use that key_id column as foreign key in place of your original primary key. In this way don't even need to update referencing rows when updating the original primary key because the foreign key value doesn't change and everything is always fine as before.
    So instead to lose time implementing some strange sort of cascade triggers plain to do something like this on your schema.
    insert into master_table (id_key,primary_key) (
         select rownum,primary_key
         from your_main_table
    alter table your_main_table add (
         id_key number,
    update your_main_table a
    set id_key = (
              select b.id_key
              from master_table
              where b.primary_key=a.primary_key
         Drops foreign keys
    alter table your_main_table drop primary key cascade
    alter table your_main_table add constraint pk
         primary key(id_key)
    alter table your_main_table add constraint fk
         foreign key(id_key) references master_table
    alter table your_main_table drop (
    alter table a_referencing_table add (
         id_key number,
    update a_referencing_table a
    set id_key = (
              select b.id_key
              from master_table
              where b.primary_key=a.primary_key
    alter table a_referencing_table add constraint fk_2
         foreign key(id_key) references master_table
    alter table a_referencing_table drop (
    /If you have many objects referencing those tables I suggest you to rename the tables and to create views with the original name of the renamed tables that show data as it was before with a join on master_table. in this way you don't need to change the code of the application referencing them but you just need to recompile invalidated objects.
    Bye Alessandro

Maybe you are looking for

  • Safari 5.0.2 doesn't save any more google search results in the history.

    Hello together, Safari doesn't save any more google search results in the history. Steps to reproduce: 1.) go to google.com 2.) search for "APPLE" 3.) open the history Result: the search for "APPLE" is not saved - only the Google mainpage. This has s

  • The telephones numbers do not let me click and call with skype in firefox 5, how do I get firefox 4 again?

    Before with firefox 3 and 4 I could call phone numbers with skype directly off of the web page by clicking the phone number. This feature no longer functions in firefox 5. What do i need to do. When I go to your website I can only download 5. I would

  • TS1389 how do i authorize my computer

    i need to authorize my computer i my computer because i had two previous computers that broke an wanted to have only one computer showing as authorized this is really making me mad.  will some one help me fix the problem.   it says go to store click

  • Iphoto sharing iphoto album text

    When I save my iphoto album to Photostream, external hard drive or a USB,  the faces, descriptions, and comments are not included.  How can I share the complete album with another Mac or PC?  Also, how do i get the text info included when I create a

  • Ripple delete in to out?

    Okay I can't for the life of me find the keyboard shortcut for this but it must be possible, can someone help me out? I just want to ripple delete what I've marked between in and out.