sql >> Database >  >> RDS >> Mysql

Foutcode:1822. Kan de externe-sleutelconstante niet toevoegen. Ontbrekende index voor beperking

create_user INT UNSIGNED ZEROFILL kan niet verwijzen naar id INT , omdat deze gelden als verschillende gegevenstypen voor doeleinden van refererende sleutelreferentie. Maak ze hetzelfde gegevenstype.

Het enige verschil in gegevenstype dat is toegestaan ​​tussen kolommen in een refererende-sleutelrelatie is de lengte van een varchar. VARCHAR(10) kan bijvoorbeeld verwijzen naar VARCHAR(20) of omgekeerd.

Elk ander verschil in gegevenstype, grootte of tekenset is incompatibel voor referentiële integriteit.

Zelfs met ZEROFILL in de ene kolom, maar niet in de andere, maakt de gegevenstypen incompatibel.



  1. Overeenkomende records uit twee tabellen

  2. InnoDB-tabellen bestaan ​​in MySQL, maar zeggen dat ze niet bestaan ​​na het kopiëren van de database naar een nieuwe server

  3. Dubbele sleutels retourneren van een JSON-document in SQL Server

  4. Oracle:Bereken tijdsverschil in UU:MM:SS tussen 2 datums