Unsupported Screen Size: The viewport size is too small for the theme to render properly.

Can't create foreign keys

forums forums SQLyog Using SQLyog Can't create foreign keys

  • This topic is empty.
Viewing 8 reply threads
  • Author
    Posts
    • #8708
      glenn351
      Member

      I have 2 tables defiined as follows:

      Members:

      CENMSSN char (9) Primary

      CENCODE char (1)

      CENLAST char (15)

      CENFIRST char (15) ……

      Dependents:

      CDEMSSN char(9) Primary

      CDECODE char(1) Primary

      CDELAST char (15)

      CDEFIRST char (15)…….

      I'm trying to create the relationship between CENMSSN and CDEMSSN. I have InnoDB set on both files and have indexes on both as well. SQLYog refuses to create the relationship. What am I missing?

    • #16721
      Ritesh
      Member

      Are you using SQLyog 4.0?

    • #16722
      glenn351
      Member

      Yes, in fact I just upgraded this AM.

    • #16723
      Ritesh
      Member

      Can you cut-n-paste the Create table… statement for both the tables?

    • #16724
      glenn351
      Member

      The tables weren't created in SQLyog, they were ODBC imports.

      However, here's the statement from when I tried to create the relationship and it failed.

      /*[1:17:15 PM][ 551 ms]*/ alter table `ufa`.`u01_caspdepn` add foreign key (CDEMSSN) references `u01_caspenrl` (CENMSSN)

      And just so you know that they are InnoDB, here's from the Database info screen.

      u01_caspdepn InnoDB 9 Fixed

      u01_caspenrl InnoDB 9 Fixed

    • #16725
      Ritesh
      Member

      To get a CREATE TABLE… statement for a table just select the table in the object browser and the corresponding statement is shown in the Objects… tab.

      Anyway, I have fowarded the issue to my development team.

    • #16726
      glenn351
      Member

      Ok, here you go

      /*DDL Information For – ufa.u01_caspdepn*/


      Table Create Table



      u01_caspdepn CREATE TABLE `u01_caspdepn` (

      `CDEMSSN` char(9) NOT NULL default '',

      `CDECODE` char(1) NOT NULL default '',

      `CDECODE2` char(3) NOT NULL default '',

      `CDESSN` char(9) NOT NULL default '',

      `CDELAST` char(18) NOT NULL default '',

      `CDEFIRST` char(12) NOT NULL default '',

      `CDESEX` char(1) NOT NULL default '',

      `CDEEFF` char(8) NOT NULL default '',

      `CDEDROP` char(8) NOT NULL default '',

      `CDEDOB` char(8) NOT NULL default '',

      `CDECERT` char(8) NOT NULL default '',

      `CDERSENT` char(8) NOT NULL default '',

      `CDERCERT` char(8) NOT NULL default '',

      `CDEDOM` char(8) NOT NULL default '',

      `CDEDOD` char(8) NOT NULL default '',

      `CDEDIVRC` char(8) NOT NULL default '',

      `CDEDBLDT` char(8) NOT NULL default '',

      `CDEDBL` char(1) NOT NULL default '',

      `CDESCHOL` char(8) NOT NULL default '',

      `CDESTAT` char(1) NOT NULL default '',

      `CDECOB` char(10) NOT NULL default '',

      `CDEPAID` char(1) NOT NULL default '',

      `CDEOVR19` char(1) NOT NULL default '',

      `CDEFLAG1` char(1) NOT NULL default '',

      `CDEFLAG2` char(1) NOT NULL default '',

      `CDETCODE` char(1) NOT NULL default '',

      `CDECRDT` char(8) NOT NULL default '',

      `CDECSTAT` char(2) NOT NULL default '',

      `CDEFIL50` char(9) NOT NULL default '',

      `CDEOPER` char(3) NOT NULL default '',

      `CDECHGDT` char(8) NOT NULL default '',

      `CDECHGTM` char(4) NOT NULL default '',

      PRIMARY KEY (`CDEMSSN`,`CDECODE`),

      KEY `CDEMSSN` (`CDEMSSN`)

      ) ENGINE=InnoDB DEFAULT CHARSET=latin1

      /*DDL Information For – ufa.u01_caspenrl*/


      Table Create Table



      u01_caspenrl CREATE TABLE `u01_caspenrl` (

      `CENMSSN` char(9) NOT NULL default '',

    • #16727
      Ritesh
      Member

      Oops – looks like u01_caspenrl didnt get through 🙂

    • #16728
      Ritesh
      Member

      We are running 4.1.7.

      We created two tables – dependents and members to reproduce the error. The create table statements are:

      Code:
      CREATE TABLE `dependents` (                                                                                                                                                                                                                                                                                                                                                                              
                   `CDEMSSN` char(9) NOT NULL default '',                                                                                                                                                                                                                                                                                                                                                                  
                   `CDECODE` char(1) NOT NULL default '',                                                                                                                                                                                                                                                                                                                                                                  
                   `CDELAST` char(15) default NULL,                                                                                                                                                                                                                                                                                                                                                                        
                   `CDEFIRST` char(15) default NULL,                                                                                                                                                                                                                                                                                                                                                                      
                   PRIMARY KEY  (`CDEMSSN`,`CDECODE`),                                                                                                                                                                                                                                                                                                                                                                    
                   KEY `CDEMSSN` (`CDEMSSN`),                                                                                                                                                                                                                                                                                                                                                                              
                 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

      and

      Code:
      CREATE TABLE `members` (                                                                                                                                                                                                                  
                `CENMSSN` char(9) NOT NULL default '',                                                                                                                                                                                                  
                `CENCODE` char(1) default NULL,                                                                                                                                                                                                        
                `CENLAST` char(15) default NULL,                                                                                                                                                                                                        
                `CENFIRST` char(15) default NULL,                                                                                                                                                                                                      
                PRIMARY KEY  (`CENMSSN`)                                                                                                                                                                                                                
              ) ENGINE=InnoDB DEFAULT CHARSET=utf8  

      We then created the required FK. The SQL for FK creation as generated by SQLyog is:

      Code:
      alter table `manitest`.`dependents` add foreign key (CDEMSSN) references `members` (CENMSSN) on update no action;

      The whole process went smoothly without any problems and we were able to create the FK.

      Did we miss something?

Viewing 8 reply threads
  • You must be logged in to reply to this topic.