sql >> Database >  >> RDS >> Mysql

MySQL:ERROR 1215 (HY000):Kan geen beperking voor externe sleutels toevoegen

Wanneer u deze vage foutmelding krijgt, kunt u de meer specifieke fout achterhalen door

. uit te voeren
SHOW ENGINE INNODB STATUS;

De meest voorkomende redenen zijn dat bij het maken van een externe sleutel, zowel het veld waarnaar wordt verwezen als het veld voor de externe sleutel moeten overeenkomen:

  • Motor moet hetzelfde zijn bijv. InnoDB
  • Gegevenstype moet hetzelfde zijn, en met dezelfde lengte.
    e.g. VARCHAR(20) of INT(10) NIET ONDERTEKEND
  • Collatie zou hetzelfde moeten zijn. bijv. utf8
  • Uniek - Foreign key moet verwijzen naar een uniek veld (meestal privé) in de referentietabel.

Een andere oorzaak van deze fout is:
U hebt een SET NULL-voorwaarde gedefinieerd, hoewel sommige kolommen zijn gedefinieerd als NOT NULL.



  1. Inzicht in SQL Server-beveiligingsfunctie HAS_Permis_BY_Name en zijn gebruiksgevallen

  2. Group_concat Het equivalent van de MySQL-functie in Oracle

  3. Hoe maak je een gebruiker aan met pgAdmin

  4. Mysql regex-fout #1139 met letterlijke -