[mysql] rename column zonder dataverlies?

Pagina: 1
Acties:

  • superbikkel
  • Registratie: Juli 2001
  • Laatst online: 16-05 09:49
Ik heb een database waarin ik een column wil hernoemen, zonder de data daarin te verliezen.

Ik die dus:

ALTER TABLE tabel CHANGE oude_naam nieuwe_naam mediumint;

Alleen staan daarna alle records op 0.

Oplossing is niet het tijdelijk bewaren van de data in een andere column, en daarna terugzetten, het zijn teveel records (30000+) en dat lukt niet binnen 30 seconden in PHP.

Weet iemand hoe ik die column kan hernoemen met behoud van data?

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 19:06

crisp

Devver

Pixelated

Een andere optie is een nieuwe tabel maken, de data overzetten, de oude tabel droppen en de nieuwe renamen. Dit kan je ook in stappen doen.
Als je shell-access hebt zou ik echter overwegen om het gewoon met een commandline tool te doen.

Intentionally left blank


Verwijderd

die 30 seconden kan je stoppen dmv set_time_limit(0); en zelf heb ik het nog niet meegemaakt dat wanneer ik een database qua structuur aan het veranderen was dat data opeens geheel verdwenen is.

Mag ik vragen wat de gegevens zijn van oude_naam, want nieuwe_naam is mediumint (oftewel een integer en was mischien de oude_naam text?)

  • superbikkel
  • Registratie: Juli 2001
  • Laatst online: 16-05 09:49
De oude tabel en de nieuwe zijn beide mediumint.

Ik heb geen shell access, en de update moet automatisch gebeuren.

Die set_time_limit(), werkt dat gewoon in php-script als je niet de admin van het systeem bent?

Verwijderd

Als PHP niet in safe mode draait wel.

En als je het type nou eens weglaat, en alleen de namen gebruikt?

  • bartware
  • Registratie: Juni 2001
  • Laatst online: 25-03-2023

bartware

@jabber.org

Kun je geen gebruik maken van phpMyAdmin?
Daar werkt een rename van een kolom zonder dataverlies.
(Net getest met versie 2.5.6 op mySql 3.23.55)

Heb ik me begrepen?
Cycle Vision 2020: 17-20 juli Sportpark Sloten & Wheelerplanet Spaarnwoude


  • superbikkel
  • Registratie: Juli 2001
  • Laatst online: 16-05 09:49
bartware schreef op 20 juli 2004 @ 14:17:
Kun je geen gebruik maken van phpMyAdmin?
Daar werkt een rename van een kolom zonder dataverlies.
(Net getest met versie 2.5.6 op mySql 3.23.55)
Ja dat kan, maar dan kan ik het niet automatisch elke dag laten uitvoeren, ik wil ook wel eens op vakantie :)

  • bartware
  • Registratie: Juni 2001
  • Laatst online: 25-03-2023

bartware

@jabber.org

Waarom wil je elke dag kolommen gaan hernoemen? :? :?

Heb ik me begrepen?
Cycle Vision 2020: 17-20 juli Sportpark Sloten & Wheelerplanet Spaarnwoude


  • superbikkel
  • Registratie: Juli 2001
  • Laatst online: 16-05 09:49
set_time_limit(0); was de gouden tip, waarvoor dank en hulde aan citnetx!

  • IcE_364
  • Registratie: Februari 2002
  • Laatst online: 22-05 11:48
superbikkel schreef op 20 juli 2004 @ 14:23:
[...]


Ja dat kan, maar dan kan ik het niet automatisch elke dag laten uitvoeren, ik wil ook wel eens op vakantie :)
Als je elke dag je kolom moet hernoemen zou ik eerder gaan kijken naar een nieuwe database structuur... Want dan klopt er iets niet helemaal in het ontwerp imo

  • superbikkel
  • Registratie: Juli 2001
  • Laatst online: 16-05 09:49
Voor de duidelijkheid:

Het zijn kolomen met waardes die elke dag veranderen, en waarover ik de verschillen uitreken, tot 30 dagen terug. De oudste data kan dus elke dag weg, en elke dag wordt er een nieuwe stroom data ingevoerd.

Ik ben intussen van het hernoemen afgestapt, (door die time_limit ding) en verplaats gewoon alle data naar de volgende kolommen.

Als je niet snapt wat ik bedoel (en dat snap ik best, is best k*t uitleggen), kijk dan ff op m'n boincstats site.
Pagina: 1