sql >> Databáze >  >> RDS >> Mysql

Co znamená chyba mysql 1025 (HY000):Chyba při přejmenování './foo' (errorno:150)?

Tato chyba se obvykle zobrazí, pokud vaše tabulky používají engine InnoDB. V takovém případě byste museli vypustit cizí klíč a poté provést změnu tabulky a vypustit sloupec.

Záludná část je však v tom, že cizí klíč nemůžete zahodit pomocí názvu sloupce, ale místo toho byste museli najít název použitý k jeho indexování. Chcete-li to zjistit, zadejte následující výběr:

SHOW CREATE TABLE region;

To by vám mělo ukázat název indexu, něco takového:

OMEZENÍ region_ibfk_1 FOREIGNKEY (country_id ) REFERENCEcountry (id ) PŘI DELETE NOACTION ON UPDATE NO ACTION

Nyní jednoduše zadejte:

alter table region drop cizí klíčregion_ibfk_1;

A nakonec:

alter table region drop columncountry_id;

A můžete jít!



  1. Získejte hodnotu na základě max. z jiného sloupce seskupeného podle jiného sloupce

  2. Implementace vztahu jedna ku nule nebo jedné na SQL Server

  3. Jak přidat server pro správu v R12.2

  4. Přidejte týdny k datu v PostgreSQL