MySQL Error 1822: Failed to add foreign key constraint; missing index for contraint BUT index exists

后端 未结 2 1285
野趣味
野趣味 2021-01-03 01:55

I am trying to add an foreign key to my flightschedule table but it fails, but I do not really know why. The foreign key should reference the txtAC_tag attribute from the tb

相关标签:
2条回答
  • 2021-01-03 02:16

    It seems you have created Composite Primary Key for the table tblAircrafts.

    If you wanted to add the composite key reference to the table tblflightschedule, you need to use the below syntax:

    alter table tblflightschedule
    add foreign key ('int Column', txtAC_tag) references tblaircrafts **(idAC, txtAC_tag);**
    

    And you have to refer two columns for adding foreign key ('int Column', txtAC_tag).

    So you can either add one more column in your tblflightschedule table or drop one column from tblaircrafts table.

    0 讨论(0)
  • 2021-01-03 02:38

    The issue is here:

    add foreign key(txtAC_tag) references tblaircrafts(txtAC_tag);
    

    here you are binding txtAC_tag to txtAC_tag of tblaircrafts table in a foreign key relationship but in tblaircrafts the column txtAC_tag is neither unique nor primary that's why it is showing error.

    For foreign key relationship, the parent table column on which you are creating relation must be unique or primary and they must have the same datatype and size also.

    To resolve this make txtAC_tag column unique.

    0 讨论(0)
提交回复
热议问题