# Spaltentyp in MySQL ändern



## Leroy42 (9. Jun 2007)

Hallo,

kann ich eigentlich den Typ einer Spalte in
einer MySQL-Datenbank von _int(11)_ auf _float_
ändern, *ohne* die bereits in der Tabelle gespeicherten
Daten zu löschen? Anders gefragt: Ist eine
Erweiterung von _int(11)_ auf _float_ problemlos möglich?

Edit: Wie ändere ich überhaupt einen Tabellenspaltentypen?

Ich hab's mit
_alter table r1 change ePreis ePreis int float_
und
_alter table r1 modify ePreis int float_

nach diesem MySql - Referenzhandbuch
versucht, aber bei beiden kommt die Fehlermeldung



			
				mySQL-Server hat gesagt.:
			
		

> _You have an error in your SQL syntax; check the manual that correspondends to your
> MYSQL server version for the right syntax to use near 'float' at line 1_


----------



## HoaX (9. Jun 2007)

wieso stellst du die frage nich in einem mysql-forum?

CHANGE [COLUMN] old_col_name column_definition
        [FIRST|AFTER col_name]

was soll die int-angabe im statement? mysql weiß selbst anhand des spaltennamens was es zur zeit ist. 

 ... ansonsten kann man das ganze auch zu fuß machen:

neuen stalte anlegen, update mit wert aus ursprünglicher spalte, alte spalte droppen, neue spalte umbenennen.


----------



## Leroy42 (9. Jun 2007)

HoaX hat gesagt.:
			
		

> wieso stellst du die frage nich in einem mysql-forum?



Hast irgendwie Recht!  ???:L 

Aber hier wurde mir immer schnell geholfen!  :wink: 


			
				HoaX hat gesagt.:
			
		

> CHANGE [COLUMN] old_col_name column_definition
> [FIRST|AFTER col_name]



Das hilft mir jetzt nicht so recht weiter    :###  ???:L 



			
				HoaX hat gesagt.:
			
		

> was soll die int-angabe im statement? mysql weiß selbst anhand des spaltennamens was es zur zeit ist.



 :shock: Stimmt ja! Ich hatte das Beispiel aus der Referenz
(siehe oben) mißinterpretiert.
_ALTER TABLE t1 MODIFY b BIGINT NOT NULL;_
Ich dachte, da würde die Spalte _b_ vom Typ *bigint*
in den Typ *not null* geändert.   

Durch deinen Hinweis habe ich einfach

_alter table rPosten modify ePreis float_

gemacht und es klappte sofort! 

Danke!  :toll:


----------



## HoaX (10. Jun 2007)

richtig, "NOT NULL" ist ja schließlich kein typ. und es steht nirgends OLD_COLUMN_DEFINITION ...


----------

