MySQL+PHPMyAdmin
Daniel
- datenbank
Hi,
ich möchte die struktur und nur die struktur und nichts anderes als
die struktur einer tabelle aktuallisieren.
Sprich, ich habe lokal ein paar seiten welche ich "verbessere" dadurch
kam es zu veränderungen in der struktur der tabellen, sprich es kamen
weitere daten hinzu. wenn ich diese nun aber exportiere dann macht mir PHPMyAdmin:
DROP TABLE IF EXISTS `tabelle_name`;
CREATE TABLE `tabelle_name` (
`spalte1` int(11) NOT NULL default '0',
`spalte2` int(11) NOT NULL auto_increment,
`spalte3` varchar(10) NOT NULL default '',
`spalte4` varchar(60) NOT NULL default '',
...
PRIMARY KEY (`spalte2`),
...
ich finde den Knopf nicht wo ich sagen kann das er sowas macht:
ALTER TABLE tabellename IF NOT EXIST col(Spalte1) ADD col=Spalte2
denn die daten sollen nicht überschrieben werden. da es nur eine ist
bei der sich was geaendert hat und es zu mehreren Tabellen
verknüpfungen bestehen. daher ist das Drop schonmal nicht OK, aber ein
einfaches CREAT TABLE reicht ja auch nicht um das zu aktuallisieren,
oder?
MfG
Hallo Daniel,
ich finde den Knopf nicht wo ich sagen kann das er sowas macht:
ALTER TABLE tabellename IF NOT EXIST col(Spalte1) ADD col=Spalte2
Woher soll phpMyAdmin denn wissen, welche Spalten hinzugekommen sind?
Viele Grüße,
Christian
Hi,
ALTER TABLE tabellename IF NOT EXIST col(Spalte1) ADD col=Spalte2
^^ups
Woher soll phpMyAdmin denn wissen, welche Spalten hinzugekommen sind?
woher soll ich wissen woher wer was weis?
ich dacht mir halt der macht dann ein
ALTER TABLE tabellename1 IF NOT EXIST col(Spalte1) ADD col=Spalte1;
ALTER TABLE tabellename1 IF NOT EXIST col(Spalte2) ADD col=Spalte2;
ALTER TABLE tabellename1 IF NOT EXIST col(Spalte3) ADD col=Spalte3;
...
ALTER TABLE tabellename1 IF NOT EXIST col(SpalteX) ADD col=SpalteX;
ALTER TABLE tabellename2 IF NOT EXIST col(Spalte1) ADD col=Spalte1
ALTER TABLE tabellename2 IF NOT EXIST col(Spalte2) ADD col=Spalte2;
ALTER TABLE tabellename2 IF NOT EXIST col(Spalte3) ADD col=Spalte3;
...
ALTER TABLE tabellenameX IF NOT EXIST col(SpalteX) ADD col=SpalteX;
gibts da sowas? wie sieht das aus? wie kann ich das PHPMyAdmin klar
machen? oder muss ich das per hand umschreiben?
oder bleibt mir nur die daten aus der vorhandenen zu sichern, mit DROP -> CREATE
die neue Tabstruktur und die daten wieder einzuspielen?
MfG
Hi Daniel,
ich finde den Knopf nicht wo ich sagen kann das er sowas macht:
ALTER TABLE tabellename IF NOT EXIST col(Spalte1) ADD col=Spalte2
Bei der Tabelle auf Struktur. unter der tabelle, unter 'Druckansicht' steht:
'Neue Felder hinzufügen: [1 ] (·) An das Ende der Tabelle ( ) An den Anfang der Tabelle ( ) Nach [ feld1 |▼] [ OK ]'
Gruß, Marian
Hi,
'Neue Felder hinzufügen:
das weiß ich auch, ist aber etwas umständlich, find ich, das bei der im
netzt jetzt auch noch zu machen, zumal mir dort kein phpmyadmin zur
verfügung steht. bzw. ich phpMyAdmin nur für mich local konfiguriert
habe und dies nicht ändern kann.
MfG
Hi Daniel,
das weiß ich auch, ist aber etwas umständlich, find ich, das bei der im
netzt jetzt auch noch zu machen, zumal mir dort kein phpmyadmin zur
verfügung steht. bzw. ich phpMyAdmin nur für mich local konfiguriert
habe und dies nicht ändern kann.
1. Du kannst in der config.inc.php in deinem phpmyadmin-ordner anderen server, username und passwort angeben.
2. dein server-ordner\mysql\bin\mysql.exe -h host -u username -pdeinpasswort (ohne leerzeichen)
(musst halt vorher im phpmyadmin gucken, wie genau der altertable-code ist)
Gruß, Marian
Hi,
- Du kannst in der config.inc.php in deinem phpmyadmin-ordner anderen server, username und passwort angeben.
nein kann ICH nicht.
- dein server-ordner\mysql\bin\mysql.exe -h host -u username -pdeinpasswort (ohne leerzeichen)
wäre eine möglichkeit, aber sehr aufwendig
Scheinbar bleibt mir keine andere möglichkeit als die daten aus der
tabelle zu speichern und dann mit DROP -> Creat die Tabelle wieder zu
erstellen mit der neuen struktur und die gespeicherten daten von vorher
wieder einzuspielen.
MfG
Hi Daniel,
- dein server-ordner\mysql\bin\mysql.exe -h host -u username -pdeinpasswort (ohne leerzeichen)
wäre eine möglichkeit, aber sehr aufwendig
nein! da kannst du (nach 'USE datenbank') gleich den befehl eingeben!
Gruß, Marian
Hi,
nein! da kannst du (nach 'USE datenbank') gleich den befehl eingeben!
ich weis
aber ich schreib doch nicht von hand, zumindest hab ichs nicht vor da mir der andere weg einfach und schneller erscheint, x-mal
ALTER TABLE tabelle ADD IF NOT EXISTS spalte INT(11) NOT NULL;
ALTER TABLE tabelle ADD IF NOT EXISTS spalte2 DATE NOT NULL;
etc. etc.
MfG
echo $begrüßung;
aber ich schreib doch nicht von hand, zumindest hab ichs nicht vor da mir der andere weg einfach und schneller erscheint, x-mal
ALTER TABLE tabelle ADD IF NOT EXISTS spalte INT(11) NOT NULL;
etc. etc.
Das machst du mit Sicherheit nicht, weil es diese Syntax nicht gibt.
Wie wärst, wenn du dir von dem einen Server das CREATE-Statement anzeigen lässt, die geänderten Zeilen rauskopiert und ein ALTER TABLE drumherum schreibst und dieses Statement dann zum anderen Server sendest?
echo "$verabschiedung $name";