MySQL alter table - ändern TINYINT, um ein SMALLINT
Habe ich folgende Datenbank mit zwei Tabellen (entschuldigt meine hässliche format):
TABLE_A : Id TINYINT, PRIMARY KEY (Id)
TABLE_B : Id TINYINT, FOREIGN KEY (Id) REFERENCES TABLE_A (Id)
Möchte ich ändern-Id, so dass es ein SMALLINT eher als ein Wert vom Datentyp TINYINT. Hier sind ein paar fehlgeschlagene versuche:
mysql> ALTER TABLE TABLE_A MODIFY Id SMALLINT
ERROR 1025 (HY000): Error on rename of '.\testdb\#sql-bcc_16' to '.\testdb\table_a' (errno: 150)
mysql> ALTER TABLE TABLE_B DROP FOREIGN KEY (Id)
ERROR 1025 (HY000): Error on rename of '.\testdb\table_b' to '.\testdb\#sql2-bcc-16' (errno: 152)
Weiß jemand, was hier Los ist?
- Post was
show create table table_b
zeigt. - Sie sollten zuerst
ALTER TABLE TABLE_B DROP FOREIGN KEY Id
(woid
ist der name des Foreign-Key). - überprüfen Sie meine aktualisierte Antwort
- gelöst oder noch immer Fehler???
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie folgende Abfragen
mysql> ALTER TABLE Price MODIFY Id SMALLINT
mysql> ALTER TABLE Sale MODIFY Id SMALLINT
mysql> ALTER TABLE Phone MODIFY Id SMALLINT
Ich auch, antwortete Sie auf
MySQL alter table generieren von "Fehler beim umbenennen" lange Zeit zurück... aber Sie werden nicht Antworten da...
Hier in Ihrem Fall es wird sein
mysql> ALTER TABLE TABLE_A MODIFY Id SMALLINT
mysql> ALTER TABLE TABLE_B MODIFY Id SMALLINT
Update
überprüfen Helfen Sie mit: FEHLER 1025 (HY000): Fehler beim umbenennen von .... (errno: 150).. Könnte dir helfen..
describe MYTABLE01
,describe MYTABLE02
und lassen Sie mich wissen, was es gibt