Changing foreign key name in physical model

If I change foreign key name in physical model, it does not change in relational model. But when I change the name in relational model, the new name appears in physical model. This happens in Data Modeler 2 and 3EA2. Is it a bug or an intentional feature?

it's not a bug - the name in physical model "follows" the name in relational model until name in physical model is changed. It keeps the same value and changes in relational model do not affect it. original behavior can be restored if you set the same name as it is in relational model.
If I change foreign key name in physical model, it does not change in relational modelYou can look at physical model as specific implementation of relational model - changes do not go back in relational model.
Philip

Similar Messages

  • How can I show Foreign Key name in the Data model Table window

    Hi,
    In one of my table, I had a Foreign Key, but that is not indexed. I want to display the name with in the table second window in realtional data model. If it is indexed, then it is showing in third window. How I can show without indexing that column?
    Thanks.

    I want to show Foreign Key name in the second window.
    Thank you for considering my question,
    Sundar

  • Renaming Foreign Keys in the Relational Model

    Hi,
    I'm new to Data Modeler, we are using v 3.0.0.66.5 and Oracle 11g, and I'm trying to build a Logical and Relational model for a new application.
    We always name our Primary Keys as ID, this is causing me a problem with my Foreign Keys names in the Relational Model, as they are showing as ID#. Is there a way to add the abbr. of the table to the Foreign Key?
    Thanks in Advance
    Sue

    I always do that job using Naming Standard Templates. This sequence renames ALL FK COLUMNS for ALL TABLES only in RELATIONAL MODEL:
    -Preferences > Data Modeler > Naming Standards > templates
    -into the box "Column Foreign Key"
    -Put something like that: {ref table}_{ref column}
    -Then, go into your modeler tree, select the relational model, right click and use "Apply Naming Standards to Keys and Constraints"
    -deselect all
    -select the last option "Column Foreign Key"
    -Go.
    What if the names still collide? What if you want to do the job for some--but-not-ALL tables? forget the method above. A transformation script will do that.
    You'll need some of these building blocks:
    - table.getFKAssociations()
    - keys.getRemoteTable().getAbbreviation()
    - column.setName()
    I'm novice to script coding, sorry I can't assemble a scripted solution right now.
    Edited by: T. on May 31, 2011 8:50 AM

  • Data Modeler foreign key names

    Hi,
    I've been using Data modeller for a while now and it works beautifully, anyhow there is an issue I would appreciate if anybody can help me in.
    For foreign keys, if the master table primary key is names ID, the foriegn key will be ID also, and if already there is an ID column column in the detail table, it will be ID1, ID2 ....
    Can I change the naming method to be like the oracle designer, or any convention I would like ??
    Thanks
    AK

    I'm using the Logical Model V 1.5.1Paul,
    it's pre-production release. Data Modeler is free now and you can download current published release - it.s version 2.0.0.584.
    There is "Attributes" page in relationship dialog (version 2.0) and you can see attributes generated by that relationship.
    For foreign keys in relational model - there is "Associated columns" page, you also can see referred key there.
    Naming templates for FK columns and attributes can be defined in version 2.0.0.584.
    Philip

  • Catch foreign key violations in the model, not the database

    I must do something wrong, when I want to delete a master that still has details, the application will let me, but the database returns an FK violation error when the commit button is pushed. The association is in the model, there is no viewlink though.
    Why doesn't the framework check this before the database does? And how could I make the message more userfriendly? My users have no idea what it means if BLABLA_FK is violated
    Thanks in advance

    I might have the source of this problem. I have a table that has 2 foreign keys to the same other table. In my RowImpl I get duplicate case labels when I create both viewlinks because the final int gets the name of the referring table.
    Doesn't ADF support 2 foreign keys to the same table?
    Update: a testcase showed me that I chose the same name for the accessors of 2 different viewlinks, so that was not the problem.
    Message was edited by:
    Wendy Tromp

  • Data Modeler - How to add foreign keys to physical model?

    I imported few tables from data dictionary and tried to generate a DDL file. The DDL didn't include foreign keys for some reason. Then I noticed that the foreign keys are in the relational model but not in the physical model. How do I get those foreign keys to the physical model?

    That's the place where I'm looking for the foreign keys in physical model. I noticed that in relational model the Generate check box of a foreign key was unchecked. When I checked it, the key appeared in the physical model. But why is it unchekced sometimes? This has happened only few times, usually the foreign keys do appear in the physical model. If I do something special during import, I don't know what it is...

  • SQL Developer Data Modeler - Relation to Foreign Key Generation

    SQL Developer Data Modeler 2.0.0 Build 584.
    I am having trouble with Relations to Foreign Keys when Forward Engineering a Relational Model from a Logical Model.
    First of all, the Naming Standard is not applied to the Foreign Keys when I perform the Engineer to Relational Model.
    So I right click on the Relational Model from the Browser and Apply Naming Standards to Keys and Constraints.
    I uncheck everything but Foreign Keys.
    Now, Foreign Keys are named according to my Naming Standards.
    However, this process also performs renames on the Column Foreign Keys even though I specifically unchecked that option.
    This appears to be a BUG in the software and I haven't found a way around it.
    I tried using {column} instead of {ref column} in the Naming Standard Template for Column Foreign Key, but that simply resulted in renaming my columns to "{column}".
    Please confirm and/or let me know of any work-around for this.
    Thanks,
    Dan

    Hi Philip,
    Thanks for the reply.
    Is this recorded as a bug to be addressed in the future?
    Should I submit this problem via Oracle Support?
    The other work-around I came up with is to override every Relation name in the Logical Model with the name I want to use in the Relational Model.
    When the Relational Model is Engineered, this becomes my Foreign Key name.
    Of course, this is not how I want to do things, so I am hoping for a bug fix someday.
    Regards,
    Dan

  • EServer Model Diagram and Cross Reference schema -Foreign key

    Hi,
    I am doing reverser engineering to generate ER diagram from Designer. Version of designer I am using is 10.2.0.2.
    While trying to generate SMD (Server model Diagram) from existing database schema, it is failing on generating foreign keys reference to other schema and its table.
    Can anybody help me to solve the this problem ?
    Viral Dave

    Note 236266.1
    CDS-11305 When Capturing a Foreign Key to a Table in Another Schema.
    * symptom: CDS-11306 Warning: Foreign Key <name> not processed because dependent Primary Key <name> not chosen for generation or does not exist in target database
    * symptom: Foreign Key to a Table in Another Schema is not Capture Designed
    * cause: This functionality is NOT supported by Oracle Designer. See: Bug 885654 FOREIGN KEYS TO DIFFERENT SCHEMA THAN BASE TABLE NOT SUPPORTED
    fix:
    In release 4.4 (6.5.89) and beyond, this functionality is still not
    supported, but the following message is issued for clarification:
    CDS-15302 Warning: <schema> clause of the relation referenced by foreign
    key constraint ... is unsupported
    Sorry....Designer will not capture that.
    Michael

  • SQL Dev Data Modeller:  Auto-generate Surrogate PKs in the Physical Model ?

    How can I have the logical modeller allow the user to design with logical PKs, but then have surrogate primary keys be auto-generated off sequences by the modeller when it comes to create the physical model - as in conventional application design?
    Without this facility, this tool is useless, IMO.
    I want:
    i). sequences to become the physical PKs by default, and that what were the logical PKs in the logical model, to become a unique key in the physical model.
    ii). I want this set by default when generating the physical model....
    iii). ....with an option to turn this off on a entity-by-entity basis (as not all tables will necessarily require such a surrogate PK; so the logical PK may remain the physical PK).

    It is common practice that physical PKs in Oracle tables are defined from sequences (surrogate PKs), and that the logical PK from the entity becomes a unique key in the table.
    This may not always be the case in every application out there, and some people may disagree, but it is nonetheless a needed feature.
    My new Feature Request is therefore:
    I would like to see the following additions to the product.
    1. In the Preferences -> Data Modeler -> Model -> Logical, a flag that by default indicates whether the designer wishes to opt to enable this feature (ie; have all logical PKs converted to unique keys, and replaced by sequence nos. in the physical model). This flags needs to be there since in real life, albeit erroneously IMO, some people will choose not to opt to use this functionality.
    2. On every entity created in the model, there needs to be a flag that allows to override this default option, as not every table will require a surrogate PK to be generated. Being able to (re)set a flag located on the entity properties (perhaps under 'Engineer To'), will accomplish this.
    3. When Forward Engineering to the physical model from the logical, the following should happen.
    ENTITY  1 ---------->TABLE 1
    ---------------------> P * Surrogate PK
    * Attribute 1 -----> U * Column 1
    * Attribute 2 -----> U * Column 2
    o Attribute 3 ----------> Column 3
    Here you can see,
    - Attributes 1 & 2 (the logical PK) of the entity become a unique key in the table (columns 1 & 2),
    - optional Attribute 3 becomes NULLable column 3,
    - and a physical surrogate PK column is added (type unbounded INTEGER, PRIMARY KEY constraint added).
    From entity DEPT as:   (Examples based on SCOTT schema)
    DEPTNO NUMBER(2) NOT NULL <-- Logical primary key on entity
    DNAME VARCHAR2(14)
    LOC VARCHAR2(13)
    CREATE TABLE DEPT
    (PK_DEPT INTEGER, -- New column becomes surrogate physical PK, driven from sequence defined later
    DEPTNO NUMBER(2) NOT NULL, -- Former logical PK becomes a UK
    DNAME VARCHAR2(14),
    LOC VARCHAR2(13))
    ALTER TABLE DEPT
    ADD CONSTRAINT PK_DEPT PRIMARY KEY (PK_DEPT) USING INDEX PCTFREE 0
    ALTER TABLE DEPT
    ADD CONSTRAINT UKLPK_DEPTNO UNIQUE (DEPTNO) USING INDEX PCTFREE 0 -- Former logical PK becomes a UK (constraint name reflects this)
    CREATE SEQUENCE PK_DEPT_SEQ
    CREATE TRIGGER PK_DEPT_SEQ_TRG
    BEFORE INSERT ON DEPT
    FOR EACH ROW
    WHEN (new.PK_DEPT IS NULL)
    BEGIN
    SELECT PK_DEPT_SEQ.NEXTVAL
    INTO :new.PK_DEPT
    FROM DUAL;
    -- Or from 11g onwards, simply,
    :new.PK_DEPT := PK_DEPT_SEQ.NEXTVAL;
    END;
    From entity EMP as:
    EMPNO NUMBER(4) NOT NULL -- Logical primary key on entity
    ENAME VARCHAR2(10)
    JOB VARCHAR2(9)
    MGR NUMBER(4)
    HIREDATE DATE
    SAL NUMBER(7,2)
    COMM NUMBER(7,2)
    DEPTNO NUMBER(2)
    CREATE TABLE EMP
    (PK_EMP INTEGER, -- New column becomes surrogate physical PK, driven from sequence defined later
    FK_DEPT INTEGER, -- New FK to surrogate PK in DEPT table (maybe NOT NULL depending on relationship with parent)
    EMPNO NUMBER(4) NOT NULL, -- Former logical PK becomes a UK
    ENAME VARCHAR2(10),
    JOB VARCHAR2(9),
    MGR NUMBER(4),
    HIREDATE DATE,
    SAL NUMBER(7,2),
    COMM NUMBER(7,2),
    DEPTNO NUMBER(2))
    ALTER TABLE EMP
    ADD CONSTRAINT PK_EMP PRIMARY KEY (PK_EMP) USING INDEX PCTFREE 0
    ALTER TABLE EMP
    ADD CONSTRAINT FK_DEPT FOREIGN KEY (FK_DEPT) REFERENCES DEPT (PK_DEPT)
    ALTER TABLE EMP
    ADD CONSTRAINT UKLPK_EMPNO UNIQUE (EMPNO) USING INDEX PCTFREE 0 -- Former logical PK becomes a UK (constraint name reflects this)
    CREATE SEQUENCE PK_EMP_SEQ
    CREATE TRIGGER PK_EMP_SEQ_TRG
    BEFORE INSERT ON EMP
    FOR EACH ROW
    WHEN (new.PK_EMP IS NULL)
    BEGIN
    SELECT PK_EMP_SEQ.NEXTVAL
    INTO :new.PK_EMP
    FROM DUAL;
    -- Or from 11g onwards, simply,
    :new.PK_EMP := PK_EMP_SEQ.NEXTVAL;
    END;
    [NOTE:   I use PCTFREE 0 to define the index attributes for the primary & unique keys since the assumption is that they will in general not get updated, thereby allowing for the denser packing of entries in the indexes and the (albeit minor) advantages that go with it.
    This is certainly always true of a sequence-driven primary key (as it is by its very nature immutable), but if the unique key is likely to be frequently updated, then this PCTFREE option could be user-configurable on a per table basis (perhaps under Table Properties -> unique Constraints).
    For non-sequence-driven primary keys, this storage option could also appear under Table Properties -> Primary Key.
    I notice no storage options exist in general for objects, so you may like to consider adding this functionality overall].
    Associated Issues :
    - Preferences, 'Naming Standard: Templates' should be updated to allow for the unique key/constraint to be called something different, thus highlighting that it comes from the logical PK. I've used 'UKLPK' in this example.
    - Mark the physical PK as being generated from a sequence; perhaps a flag under Table Properties -> Primary Key.
    - When Forward Engineering, if an entity exists without a logical PK, the forward engineering process should halt with a fatal error.
    !!! MODERATOR PLEASE DELETE ME !!!

  • How to create a foreign key for the table from two different tables?

    Hi All,
    I have a three table like below. In the below table SAMPLE_CONS_CHECK and SAMPLE_CONS2_CHECK will be having the primary key for NAME column. The same SAMPLE_CONS3_CHECK table also having the primary key for NAME column and forieign key for SAMPLE_CONS_CHECK and SAMPLE_CONS2_CHECK tables. See the below code 2
    code 1:
    CREATE TABLE SAMPLE_CONS_CHECK
            (NAME VARCHAR2(10),
            SERIES  VARCHAR2(5)
    CREATE TABLE SAMPLE_CONS2_CHECK
            (NAME  VARCHAR2(5),
             MODEL  NUMBER
    CREATE TABLE SAMPLE_CONS3_CHECK
            (NAME  VARCHAR2(5),
             MODEL_NO  NUMBER
            )code 2
    alter table SAMPLE_CONS_CHECK
    add constraint SAMPLE_CONS_CHECK_pk primary key (NAME)
    alter table SAMPLE_CONS2_CHECK
    add constraint SAMPLE_CONS2_CHECK_pk primary key (NAME)
    alter table SAMPLE_CONS3_CHECK
    add constraint SAMPLE_CONS3_CHECK_pk primary key (NAME)
    ALTER TABLE SAMPLE_CONS3_CHECK ADD
    CONSTRAINT SAMPLE_CONS3_CHECK_FK1 FOREIGN KEY
         NAME
    ) REFERENCES SAMPLE_CONS_CHECK
        NAME
    ) ON DELETE CASCADE;
    ALTER TABLE SAMPLE_CONS3_CHECK ADD
    CONSTRAINT SAMPLE_CONS3_CHECK_FK2 FOREIGN KEY
         NAME
    ) REFERENCES SAMPLE_CONS2_CHECK
        NAME
    ) ON DELETE CASCADE;From the above schenario i am able to insert the data to SAMPLE_CONS3_CHECK table. But the parent data is already available in the parent table. The problem is here two different constarints from two different tables. While inserting, it is checking from both the tables whether the parent is exist or not.
    How can i solve this problem? Can anyone halp me about this?
    Thanks
    Edited by: orasuriya on Aug 8, 2009 2:02 AM

    Actually the design is completely incorrect.
    What you say is
    I have
    'foo', 'foo series'
    'foo','foo model'
    'foo',666
    By virtue of table3 referring to both table1 and table2.
    This means you actually need to have 1 (one) table:
    'foo','foo series','foo model', 666
    And the 'problem' disappears.
    Sybrand Bakker
    Senior Oracle DBA

  • Subquery in IF statement in trigger, without using foreign keys

    Hello,
    I'm investigating ways of writing a subquery in an IF statement, which is placed inside a trigger.
    I wanna write smth like IF (:new.jazz not in (select goldies from T where ... )) etc. I don't know whether the fact that the IF is in a trigger adds some additional restrictions. (Does it?)
    So far I found the solution described here: SubQuery Comparison in If Statement which I find a bit tacky, I could have the 'cooleststarinthegalaxy' instead of 1 and seems you need to do extra light, but still extra lifting.
    I also read about the possibility of using MERGE, which I'm currently researching.
    Is there any other way?
    Thanks
    Edited by: BluShadow on 14-Nov-2012 13:37
    fixed link
    Edite by me: the question is how (if possible) to do this without a foreign key.
    Edited by: questioningq12 on Nov 14, 2012 6:11 AM
    Edited by: questioningq12 on Nov 14, 2012 6:13 AM

    Hi,
    questioningq12 wrote:
    Say I have tables A(namea varchar(10)), B(nameb varchar(10)), and B contains tuples ('1stname','2ndname').
    I wrote a trigger before insertion, for each row, on table A. For a tuple t to be inserted, it should check whether t.namea is in the set of values nameb from B.
    E.g., INSERT INTO A VALUES('1stname') should work. But INSERT INTO A VALUES ('3rdname') should fail. You can use a foreign key constraint for that.
    If the tables already exist, and b.nameb is declared as UNIQUE (or PRIMARY KEY), then you can say:
    ALTER TABLE  a
        ADD CONSTRAINT     a_namea_fk
        FOREIGN KEY  (namea)
        REFERENCES b (nameb)
    ;If you had a situation where you really needed to query a table in PL/SQL, and you weren't sure if the query would find anything, you could put the query in its own BEGIN ... EXCEPTION block, and test for NO_DATA_FOUND.
    If you're just checking to see if a row exists or not, you can always write a query that is guaranteed to return exactly 1 row, like this:
    BEGIN
        SELECT  COUNT (*)
        INTO    x
        FROM    b
        WHERE   nameb = :NEW.namea
        AND         ROWNUM  = 1;
        IF x = 0
        THEN  
            ...        -- print msgs, raise exceptions etc
        END IF;
    END;Edited by: Frank Kulash on Nov 14, 2012 9:22 AM
    Added example

  • How can I change a column name in table (JDeveloper 10.1.3.3)?

    I'd like to change a table column name, for example instead of "FirstName" I'd like "Name".
    Here is the preview: http://img208.imagevenue.com/img.php?image=86575_firstname_122_578lo.JPG
    Thank You in advance!

    Now I have following problem: When I change "Label text" to column which has "Combo box" (Department insted of DepartmentId) I do not have my combo box anymore, just DepartmentId (Number). I have created binding... (DepartmentId -> Department Name) Why is this happening?
    http://img151.imagevenue.com/img.php?image=47670_firstname_122_862lo.JPG
    Can I change my attribute name in data model?
    BTW I use ADFBC Swing
    Sorry on my bad English ...
    thank you
    Message was edited by:
    user638810
    Message was edited by:
    user638810
    Message was edited by:
    user638810

  • Physical Model - Primary Key changed

    I have a report called 'Service Report' running fine. This report uses multiple tables like Service,Specification etc...
    Now that the primary key of service table has changed from 'jdoid' to 'entityId' (The primary key of all the other tables also have changed).
    Wondering what is the best way to rewrite this report?
    Do I have to import 'Service' table (and all other tables) and redefine physical model,business model and presentation model from scratch?
    Is there any other strategy that anybody could think of?
    Appreciate your help.
    Thanks
    Kavi

    No you don't need to re-import. You can edit manually in the Admin tool - start with the physical layer, then the BMM layer.
    Depending on the columns and how the report is built you might not need to edit the report at all.

  • New SQL Developer Data Modeler : name of attributes of foreign key

    Hi,
    with designer the name of column of foreign key was the " short name of entity/table master" + "_" + "the name of column attribute of the master table" .
    Instead in the sql developer D.M. the system uses directly the name of the column/attribute of the master table and if the name exists in the slave table it uses a number to distinguish them .
    So, if i have a table with short name gp and a primmary key id and a slave table with even a column id ,
    with the D.M i'll have in the slave table a column named id2; in the designer instead the new column is gp_id .
    Is possible to have the same behavior of designer even in the SQL Developer Data Modeler ?
    Regards
    Gianpaolo Giliberto

    Hi Gianpaolo,
    the columns of foreign keys are generated without the short name of master tablehow do you define that short name? Table and column have property "Abbreviation" - short name should be set there. You need also to set naming templates in "General Options>Naming Standard>Templates". Templates will be used when foreign key is created or you can apply them in Table dialog or for whole relational model using pop-up menu in the browser.
    no foreign key index is generated on foreign key columns I assume, you want it for DDL generation only - this is controlled in "General Options>DDL"
    Regards,
    Philip

  • Foreign key changing name...

    Hi again, and again...! (at least I always punch the helpful and correct buttons ...:P)
    Clearly, I lack knowledge about foreign keys.
    Of course I searched the web before posting.
    !http://img264.imageshack.us/img264/9602/dsdv.png!
    This is the strange DSD...
    The Team table (equipe) is connected to Rencontre (Meeting)
    During a meeting (NoR 1,2 ... incrementation), there is TWO teams : NoEH (Host team) and NoEV (Visiting team)... these are FK for NoE (Team number)
    This is so strange...
    The Partie (Match) occurs from 3 to 5 times during a Meeting, and the winner is put on the H_ or V_, which only says which team wins... visiting or host
    How am I suppose to make a select table stating which team (NoE!!!! not NoeH! or NoeV?!!) won how many games, how many games played, wtc...
    Anyone know a tactic to approach this problem?
    I was thinking of maybe creating a view for each team to add their wins...?

    Hi,
    For this case can you post scripts for creation of tables and a minimal data? And also please post the specific problem you are having.
    Regards,

Maybe you are looking for

  • The Genius playlist and the 1st Generation ipod touch

    I am just wondering, is the genius playlist ability not available to the 1st Generation iPod touch or does it only work on certain songs? Because it would be really annoying if they limited to the 2nd Generation iPod touch only.

  • New lows of customer service by BT / Openreach.

    Sequence of events: 1. Moved into new house.  2. Booked engineer visit (2 weeks wait).  3. Had to rebook engineer visit (another 2 weeks - my fault in this instance).  4. Took afternoon off work to meet engineer and provide access.  5. Engineer does

  • Logic GUI not in sync with audio

    A freshly-installed Logic 8 on a clean Mac Pro 2.26 (x8) results in badly synched graphics. The meters in all of my plug-ins do not sync up with the audio -- doesn't matter which. More specifically, the graphics are coming before the corresponding au

  • Problem in using Timestamp from java.sql.*

    AOA i have declared a variable private Timestamp entryDate = new Timestamp(8);while using it in my application. it inserts similar time stamp in database , like 01/01/1970 5:00:00 AM How to get current time from it and how to insert it in databse.

  • Illustrator CS6 path selection color

    I'm familiar with older versions of Illustrator, but kinda new to CS6. Double-clicking a path in the Layers palette used to offer the option to change the color of that path. Is this option still around somewhere? Thanks.