Datenupdate

Datenupdate

am 25.07.2006 13:40:15 von bartez2004-apoll

Hallo,

ich habe nun die Aufgabe in unserem Vereine, die Mitglieder zu
verwalten. In unserer Datenbank gibt es eine Tabelle Adressen
(Mitgliedsnummer, Wohnort, Strasse, etc.). Leider habe ich den Inhalt
der Spalte Wohnort gelöscht. Glücklicherweise habe ich in einer
älteren Textdatei (CSV) noch teilweise die Daten (Mitgliedsnummer,
Wohnort, ...). Wie kann ich den Inhalt der Spalte "Wohnort" aus der
Textdatei in die Spalte "Wohnort" in der Tabelle "Adresse" ohne alles
einzeln einzutippen?
Für eure Hilfe wäre ich dankbar, denn ich kenne mich damit kaum aus.

Re: Datenupdate

am 25.07.2006 13:58:25 von Andreas Kretschmer

Andreas
--
q: why do so many people take an instant dislike to mysql?
a: it saves time (oicu in #postgresql)
Explaining the concept of referential integrity to a mysql user is like
explaining condoms to a catholic (Shadda in #postgresql)

Re: Datenupdate

am 25.07.2006 13:59:39 von Dirk Brosowski

bartez2004-apoll@yahoo.de schrieb:
> Hallo,
>
> ich habe nun die Aufgabe in unserem Vereine, die Mitglieder zu
> verwalten. In unserer Datenbank gibt es eine Tabelle Adressen
> (Mitgliedsnummer, Wohnort, Strasse, etc.). Leider habe ich den Inhalt
> der Spalte Wohnort gelöscht. Glücklicherweise habe ich in einer
> älteren Textdatei (CSV) noch teilweise die Daten (Mitgliedsnummer,
> Wohnort, ...). Wie kann ich den Inhalt der Spalte "Wohnort" aus der
> Textdatei in die Spalte "Wohnort" in der Tabelle "Adresse" ohne alles
> einzeln einzutippen?
> Für eure Hilfe wäre ich dankbar, denn ich kenne mich damit kaum aus.
>

Dann nimm deine Textdatei und erzeuge aus dieser mit Hilfe Editormakros
deines Editors UPDATE-Befehle. Jede Zeile sollte dann in etwa so aussehen:
UPDATE adressen set wohnort='Muenchen' WHERE mitgliedsnummer='1234A';

Und dann diese erstellten Zeilen in einen Client deiner Wahl eingeben
und feddig.

Grüße

Dirk

Re: Datenupdate

am 25.07.2006 14:10:57 von bartez2004-apoll

Vielen Dank für die schnellen Antworten. Tja ein Backup gibt es nicht.
Die Lösung scheidet aus. Da ich aber jetzt die Verwaltung übernehmen
darf, werde ich für ein regelmäßiges Backup sorgen. Gibt es nicht
einen Befehl, der die Mitgliedsnummern in der Tabelle mit den
vorhandenen Mitgliedsnummern in der Datei vergleicht und bei
Übereinstimmung den entsprechenden Wohnort setzt? In Excel würde mir
da was einfallen aber in SQL bin ich ein Newbie. :-(

Re: Datenupdate

am 25.07.2006 14:21:13 von Andreas Kretschmer

Andreas
--
q: why do so many people take an instant dislike to mysql?
a: it saves time (oicu in #postgresql)
Explaining the concept of referential integrity to a mysql user is like
explaining condoms to a catholic (Shadda in #postgresql)

Re: Datenupdate

am 25.07.2006 14:38:11 von bartez2004-apoll

Also ganz ehrlich gesagt. Habe ich Dirks Antwort eigentlich garnicht
verstanden. Nicht böse sein Dirk -> ich betrete hier Neuland!

Re: Datenupdate

am 25.07.2006 15:33:31 von Andreas Kretschmer

Andreas
--
q: why do so many people take an instant dislike to mysql?
a: it saves time (oicu in #postgresql)
Explaining the concept of referential integrity to a mysql user is like
explaining condoms to a catholic (Shadda in #postgresql)

Re: Datenupdate

am 25.07.2006 15:40:12 von Christian Kirsch

Andreas Kretschmer schrieb:
> begin bartez2004-apoll@yahoo.de wrote:
>> Also ganz ehrlich gesagt. Habe ich Dirks Antwort eigentlich garnicht
>> verstanden. Nicht böse sein Dirk -> ich betrete hier Neuland!
>
> Bist Du sicher, nicht überfordert zu sein?
>
>
> Okay, als ungetester Schnellschuß:
>
>
> kretschmer@tux:~$ cat foo.csv
> 1;Berlin;bla
> 2;Hamburg;blub
> kretschmer@tux:~$ awk 'BEGIN{FS=";"}{print "UPDATE table SET wohnort = \047" $2 "\047 WHERE id = " $1}' < foo.csv
> UPDATE table SET wohnort = 'Berlin' WHERE id = 1
> UPDATE table SET wohnort = 'Hamburg' WHERE id = 2
>
>
> Das leitest Du entweder erst mal in eine Datei um oder verfütterst es
> gleich an den CLI-Client von Deinem RDBMS.
>

Ich vermute mal, da arbeitet jemand mit Access unter Windoze. Und das
hat (wieder eine Vermutung) keinen CLI. Von AWK ganz zu schweigen ...
Vermutlich wäre es besser, einen Dienstleister mit der Arbeit zu
beauftragen. Oder einen Karteikasten zu verwenden.

Re: Datenupdate

am 25.07.2006 16:21:49 von ascii158

Hi,

bartez2004-apoll@yahoo.de wrote:
> ich habe nun die Aufgabe in unserem Vereine, die Mitglieder zu
> verwalten. In unserer Datenbank gibt es eine Tabelle Adressen
> (Mitgliedsnummer, Wohnort, Strasse, etc.). Leider habe ich den Inhalt
> der Spalte Wohnort gelöscht. Glücklicherweise habe ich in einer
> älteren Textdatei (CSV) noch teilweise die Daten (Mitgliedsnummer,
> Wohnort, ...). Wie kann ich den Inhalt der Spalte "Wohnort" aus der
> Textdatei in die Spalte "Wohnort" in der Tabelle "Adresse" ohne alles
> einzeln einzutippen?

Hm, wäre es nicht möglich diese CSV-Datei mit der csv-Engine einzubinden
und dann ein Statement wie

UPDATE mitglieder SET Wohnort=(SELECT Wohnort FROM csvtable WHERE
mnummer=mitglieder.mnummer);

abzusetzen?

Grüße,
--
Philipp Tölke
PGP 0x96A1FE7A

Re: Datenupdate

am 25.07.2006 16:22:12 von Carsten Wiedmann

bartez2004-apoll@yahoo.de schrieb:

> ich habe nun die Aufgabe in unserem Vereine, die Mitglieder zu
> verwalten. In unserer Datenbank gibt es eine Tabelle Adressen
> (Mitgliedsnummer, Wohnort, Strasse, etc.). Leider habe ich den Inhalt
> der Spalte Wohnort gelöscht. Glücklicherweise habe ich in einer
> älteren Textdatei (CSV) noch teilweise die Daten (Mitgliedsnummer,
> Wohnort, ...).

Lege erst einmal eine temporäre Tabelle an:
http://dev.mysql.com/doc/refman/5.0/en/create-table.html

Importiere dann dein CSV in diese temporäre Tabelle:
http://dev.mysql.com/doc/refman/5.0/en/load-data.html


> Wie kann ich den Inhalt der Spalte "Wohnort" aus der
> Textdatei in die Spalte "Wohnort" in der Tabelle "Adresse" ohne alles
> einzeln einzutippen?
> Für eure Hilfe wäre ich dankbar, denn ich kenne mich damit kaum aus.

Und jetzt updatest du die Spalte "Wohnort" in der Tabelle "Adresse" mit dem
Wert aus Spalte "Wohnort" in der temporären Tabelle. Immer jeweils wo in
beiden Tabellen die Spalte "Mitgliedsnummer" übereinstimmt:
http://dev.mysql.com/doc/refman/5.0/en/update.html

Anschliessend kannst du dann die temporäre Tabelle wieder löschen:
http://dev.mysql.com/doc/refman/5.0/en/drop-table.html

Gruß
Carsten

Re: Datenupdate

am 25.07.2006 16:22:13 von bartez2004-apoll

Na ganz so dramatisch ist es mit meinen Fähigkeiten nun auch nicht.
Fakt ist, dass es meinen Vorgänger nicht mehr gibt. Er hat selbst für
die Verwaltung eine kleine Oberfläche programmiert. Im Hintergrund
läuft auf dem PC (WinXP) mysql 4.1. Die Tabellen bearbeite ich mit
mysql-front.

Re: Datenupdate

am 25.07.2006 16:26:05 von Carsten Wiedmann

bartez2004-apoll@yahoo.de schrieb:

> Übereinstimmung den entsprechenden Wohnort setzt? In Excel würde mir
> da was einfallen aber in SQL bin ich ein Newbie. :-(

Da ja Excel auch über ODBC auf MySQL zugreifen kann, kannst du das natürlich
auch direkt in Excel machen, wenn du damit besser zurecht kommst.

Gruß
Carsten

Re: Datenupdate

am 25.07.2006 18:28:04 von Thomas Rachel

Andreas Kretschmer wrote:

> kretschmer@tux:~$ awk 'BEGIN{FS=";"}{print "UPDATE table SET wohnort =
> \047" $2 "\047 WHERE id = " $1}' < foo.csv
> UPDATE table SET wohnort = 'Berlin' WHERE id = 1
> UPDATE table SET wohnort = 'Hamburg' WHERE id = 2

Kleine Korrektur:

kretschmer@tux:~$ awk 'BEGIN{FS=";"}{print "UPDATE table SET wohnort =
\047" $2 "\047 WHERE id = " $1 ";"}' < foo.csv
UPDATE table SET wohnort = 'Berlin' WHERE id = 1;
UPDATE table SET wohnort = 'Hamburg' WHERE id = 2;

Der CLI-Client hätte die einzelnen Statements gerne per ; abgetrennt.


Thomas
--
> Nein, denn OE löscht dieses "überflüssige" Leerzeichen.
> Ja, es ist krank, furchtbar krank!
Oooh, das arme OEchen ;-)) (Dieter Bruegmann und Dirk Schneider in dnq)

Re: Datenupdate

am 25.07.2006 18:30:16 von Thomas Rachel

Christian Kirsch wrote:

>> Das leitest Du entweder erst mal in eine Datei um oder verfütterst es
>> gleich an den CLI-Client von Deinem RDBMS.
>>
>
> Ich vermute mal, da arbeitet jemand mit Access unter Windoze.

Das ließe sich ändern - zur Not mit Knoppix auf einem anderen Rechner
(wenn man den Server für das Subnetz, sofern vorhanden freischaltet).

> Und das hat (wieder eine Vermutung) keinen CLI. Von AWK ganz zu
> schweigen ...

Das gibt es unter Knoppix ebenfalls - und auch unter cygwin.


> Vermutlich wäre es besser, einen Dienstleister mit der Arbeit zu
> beauftragen. Oder einen Karteikasten zu verwenden.

Gut möglich - oder aber zu lernen.

Vor 4 Jahren hatte ich auch noch keine Ahnung von Datenbanken und
arbeitete unter Windows...


Thomas

Re: Datenupdate

am 25.07.2006 19:02:48 von Carsten Wiedmann

Thomas Rachel schrieb:

> Christian Kirsch wrote:
>
> > > Das leitest Du entweder erst mal in eine Datei um oder verfütterst es
> > > gleich an den CLI-Client von Deinem RDBMS.
> > >
> >
> > Ich vermute mal, da arbeitet jemand mit Access unter Windoze.
>
> Das ließe sich ändern - zur Not mit Knoppix auf einem anderen Rechner
> (wenn man den Server für das Subnetz, sofern vorhanden freischaltet).

Seit wann arbeitet Access auch unter Knoppix? ;-)

BTW:
Wenn jemand ein Problem unter Windows lösen möchte, ist es doch irgenwie
daneben zu sagen, er solle ein anderes OS nehmen?


> > Und das hat (wieder eine Vermutung) keinen CLI. Von AWK ganz zu
> > schweigen ...
>
> Das gibt es unter Knoppix ebenfalls - und auch unter cygwin.

Wieso soll sich jemand der Windows benutzt, sich ein CygWin installieren
oder ein anderes OS benutzen, um das Tool "awk" zu benutzen? Und das CLI
(mysql) ist ja sowieso das einzigste, standardmässig installierte Tool, um
mit MySQL zu kommunizieren. Sollte aber jedem klar sein der das Manual liest
;-)


> > Vermutlich wäre es besser, einen Dienstleister mit der Arbeit zu
> > beauftragen. Oder einen Karteikasten zu verwenden.
>
> Gut möglich - oder aber zu lernen.
>
> Vor 4 Jahren hatte ich auch noch keine Ahnung von Datenbanken und
> arbeitete unter Windows...

Da hast du recht. Wenn hier jemand eine Frage zu MySQL hat und es gibt eine
SQL-Lösung für das Problem, ist das OS i.d.R wirklich uninteressant.

Gruß
Carsten

Re: Datenupdate

am 25.07.2006 19:36:49 von bartez2004-apoll

Vielen Dank an Euch alle. Ich habe das Problem mit Eurer Hilfe gelöst.

Re: Datenupdate

am 25.07.2006 19:38:20 von ascii158

bartez2004-apoll@yahoo.de schrieb:
> Vielen Dank an Euch alle. Ich habe das Problem mit Eurer Hilfe gelöst.

Also ich bin jetzt aus reiner Neugierde interessiert, wie du es gelöst
hast...

Grüße,
--
Philipp Tölke
PGP: 0x96A1FE7A

Re: Datenupdate

am 25.07.2006 21:37:32 von bartez2004-apoll

Philipp Tölke schrieb:

> Also ich bin jetzt aus reiner Neugierde interessiert, wie du es gelöst
> hast...
>
> Grüße,
> --
> Philipp Tölke
> PGP: 0x96A1FE7A

Also dein Tip war eigentlich ausschlaggebend. Mit dem Update-Befehl
habe ich davor schon experimentiert, hatte aber immer Syntaxfehler.
Also habe ich nochmals angefangen:
Als Erstes habe ich die Daten aus der CSV-Datei in eine neue Tabelle
der Datenbank geladen. Danach startete ich folgende Abfrage:

insert into mitglieder(wohnort) select tabelle.wohnort from
mitglieder,tabelle where
mitglieder.mitgliedsnummer=3Dtabelle.mitgliedsnummer;

Alles hat wunderbar geklappt. mfg

Re: Datenupdate

am 26.07.2006 07:04:53 von Thomas Rachel

Oscar76 wrote:
^^^^^^^ Hä?


> Also dein Tip war eigentlich ausschlaggebend. Mit dem Update-Befehl
> habe ich davor schon experimentiert, hatte aber immer Syntaxfehler.
> Also habe ich nochmals angefangen:
> Als Erstes habe ich die Daten aus der CSV-Datei in eine neue Tabelle
> der Datenbank geladen.

Soweit ok.


> Danach startete ich folgende Abfrage:
>
> insert into mitglieder(wohnort) select tabelle.wohnort from
> mitglieder,tabelle where
> mitglieder.mitgliedsnummer=tabelle.mitgliedsnummer;

Und das hat geklappt? Kann ich mir fast nicht vorstellen.

Ich nehme an, Du hast jetzt in Mitglieder weiterhin die Zeilen mit dem
gelöschten Wohnort und des weiteren neue Zeilen mit ausschließlich dem
Wohnort drin. DAs ist ja nicht ganz so das Gelbe vom Ei...


Versuchs mal mit

UPDATE mitglieder JOIN tabelle USING (mitgliedsnummer) SET
mitglieder.wohnort=tabelle.wohnort;


Denn Du willst ja keine neuen Zeilen hinzufügen, sondern bestehende
Zeilen korrigieren...


Thomas
--
Ich finde, mit OE zu mailen ist wie in Thailand "Spaß" haben ohne Gummi.
(Sönke Müller-Lund in dclj)

Re: Datenupdate

am 26.07.2006 07:09:01 von Thomas Rachel

Carsten Wiedmann wrote:

> Wenn jemand ein Problem unter Windows lösen möchte, ist es doch
> irgenwie daneben zu sagen, er solle ein anderes OS nehmen?

Schon - aber kennst Du ein awk für Windows?


> Wieso soll sich jemand der Windows benutzt, sich ein CygWin
> installieren oder ein anderes OS benutzen, um das Tool "awk" zu
> benutzen?

Oder gibt es das?


> Und das CLI (mysql) ist ja sowieso das einzigste,
> standardmässig installierte Tool, um mit MySQL zu kommunizieren. Sollte
> aber jedem klar sein der das Manual liest ;-)

Mir wäre neu, daß man mit dem CLI eine CSV-Datei einlesen könnte... Eine
zusätzliche externe Umwandlung ist dabei durchaus von Nöten.

gawk (GNU awk) läßt sich sogar dahingehend aufbohren, daß man das
MySQL-API direkt ansprechen kann...


>> Vor 4 Jahren hatte ich auch noch keine Ahnung von Datenbanken und
>> arbeitete unter Windows...
>
> Da hast du recht. Wenn hier jemand eine Frage zu MySQL hat und es gibt
> eine SQL-Lösung für das Problem, ist das OS i.d.R wirklich
> uninteressant.

Das war nicht das, was ich meinte - ich habe neben den hinzugekommenen
Datenbankkenntnissen auch festgestellt, daß einem unter einem *x
wesentlich mehr Tools zur Verfügung stehen, wesentlich weniger die Hände
gebunden sind und man wesentlich mehr Freiheiten hat als unter Windows.


Thomas
--
"Ich hätte gern ein Pfund Brot." - "Das heißt jetzt 'Kilo'!" - "Wie,
nicht mehr Brot?"

Re: Datenupdate

am 26.07.2006 12:39:02 von bartez2004-apoll

Also ich habe mir eben nochmal eine leere Datenbank erstellt. In ihr
habe ich die Tabellen "mitglieder" und "tabelle" eingefügt. Danach
habe ich die Spalte "wohnort" in "mitglieder" geleert. Danach habe ich
meine Syntax eingegeben und es funzt. Bei deiner Syntax schmiert mir
immer mysql-front ab.

Eine Frage noch nebenbei. Im Unterverzeichnis /Data von mysql sind
Dateien in der Form "mysql.051". Einige davon sind über 100MB groß.
Die nehmen 'ne ganze Menge Speicher weg. Kann man die nicht löschen?

Re: Datenupdate

am 26.07.2006 12:57:18 von Andreas Kretschmer

Andreas
--
q: why do so many people take an instant dislike to mysql?
a: it saves time (oicu in #postgresql)
Explaining the concept of referential integrity to a mysql user is like
explaining condoms to a catholic (Shadda in #postgresql)

Re: Datenupdate

am 26.07.2006 12:58:30 von bartez2004-apoll

Andreas Kretschmer schrieb:

> begin Oscar76 wrote:
> > Eine Frage noch nebenbei. Im Unterverzeichnis /Data von mysql sind
> > Dateien in der Form "mysql.051". Einige davon sind über 100MB groß.
> > Die nehmen 'ne ganze Menge Speicher weg. Kann man die nicht löschen?
>
> Ja, na klar kann man.
>
>
> end
> Andreas
> --
> q: why do so many people take an instant dislike to mysql?
> a: it saves time (oicu in #postgresql)
> Explaining the concept of referential integrity to a mysql user is like
> explaining condoms to a catholic (Shadda in #postgresql)




Was sind das für Dateien? Ich nehme mal an Log- oder Cache-Files.
Werden die nicht automatisch irgendwann gelöscht?

Re: Datenupdate

am 26.07.2006 14:49:08 von Carsten Wiedmann

Thomas Rachel schrieb:

> Carsten Wiedmann wrote:
>
> > Wenn jemand ein Problem unter Windows lösen möchte, ist es doch
> > irgenwie daneben zu sagen, er solle ein anderes OS nehmen?
>
> Schon - aber kennst Du ein awk für Windows?


Ja.
| E:\>awk
| Usage: awk [-f programfile | 'program'] [-Ffieldsep] [-v var=value]
[files]
|
| E:\>

> > Wieso soll sich jemand der Windows benutzt, sich ein CygWin
> > installieren oder ein anderes OS benutzen, um das Tool "awk" zu
> > benutzen?
>
> Oder gibt es das?

s.o. Nebenbei ist der Quellcode für AWk ja auch verfügbar. Du könntest es
dir notfalls also auch einfach selber kompilieren.


> > Und das CLI (mysql) ist ja sowieso das einzigste,
> > standardmässig installierte Tool, um mit MySQL zu kommunizieren. Sollte
> > aber jedem klar sein der das Manual liest ;-)
>
> Mir wäre neu, daß man mit dem CLI eine CSV-Datei einlesen könnte... Eine
> zusätzliche externe Umwandlung ist dabei durchaus von Nöten.

Wozu ist die SQL-Anweisung "LOAD DATA INFILE" da? Und dann gäbe es auch noch
das Shell-Tool "mysqlimport". Auch für jedes OS verfügbar.


> > Da hast du recht. Wenn hier jemand eine Frage zu MySQL hat und es gibt
> > eine SQL-Lösung für das Problem, ist das OS i.d.R wirklich
> > uninteressant.
>
> Das war nicht das, was ich meinte - ich habe neben den hinzugekommenen
> Datenbankkenntnissen auch festgestellt, daß einem unter einem *x
> wesentlich mehr Tools zur Verfügung stehen, wesentlich weniger die Hände
> gebunden sind und man wesentlich mehr Freiheiten hat als unter Windows.

Mit Tools kannst du hier aber nur was meinen, was (in diesem Fall) nicht
direkt zu MySQL gehört, also Shell-Tools? Hier stellt sich natürlich die
Frage, ob es einige nicht auch für Windows gibt. Und das ist IMHO eh schon
fatal zu erwarten, dass Windows wie *nix arbeitet und dort die selben
Kommandos in der Shell (von vorne herein) zur Verfügung stehen.

Die wirklichen Unterschiede von MySQL zwischen Windows und *nix sind
jedenfalls minimal. Und bei den Fragen die hier i.d.R. gestellt werden dann
eh irrelevant.

Gruß
Carsten

Re: Datenupdate

am 26.07.2006 15:42:01 von Thomas Rachel

Carsten Wiedmann wrote:

> Ja.
> | E:\>awk
> | Usage: awk [-f programfile | 'program'] [-Ffieldsep] [-v var=value]
> [files]
> |
> | E:\>

Ah, ok.


> s.o. Nebenbei ist der Quellcode für AWk ja auch verfügbar. Du könntest es
> dir notfalls also auch einfach selber kompilieren.

Könnte ich, ja. Aber ob es der OP dieses Threads auch könnte, weiß ich
nicht. Da war mir ein "Knoppix booten" jedenfalls die schnellste Variante.

Aber wenn es im Netz eine fertig kompilierte awk.exe gibt - dürfte das wohl
die schnellste Lösung für sein Problem sein, ...

> Wozu ist die SQL-Anweisung "LOAD DATA INFILE" da? Und dann gäbe es auch
> noch das Shell-Tool "mysqlimport". Auch für jedes OS verfügbar.

.... wenn ich nicht dies hier vergessen hätte. Mea culpa.

>> Das war nicht das, was ich meinte - ich habe neben den hinzugekommenen
>> Datenbankkenntnissen auch festgestellt, daß einem unter einem *x
>> wesentlich mehr Tools zur Verfügung stehen, wesentlich weniger die Hände
>> gebunden sind und man wesentlich mehr Freiheiten hat als unter Windows.
>
> Mit Tools kannst du hier aber nur was meinen, was (in diesem Fall) nicht
> direkt zu MySQL gehört, also Shell-Tools?

Ja, das war mehr aufs OS allgemein gemünzt. Insofern schon nicht mehr ganz
OT, mehr eine mögliche Lernkurve beschreibend. So nach dem Motto "Wenn
einer keine Ahnung hat, heißt das noch nicht, daß er es nicht auch lernen
könnte."


Thomas
--
> Realität? Wasz dasz denn?
Irgendson Teil da draußen *vage mit dem Finger rumfuchtel*
(Stefanie Kruse zu Stephan Manske in germanynet.talk)

Re: Datenupdate

am 26.07.2006 20:30:39 von Norbert Melzer

Am 26 Jul 2006 03:58:30 -0700 schrieb Oscar76:

> Andreas Kretschmer schrieb:
>
>> begin Oscar76 wrote:
>>> Eine Frage noch nebenbei. Im Unterverzeichnis /Data von mysql sind
>>> Dateien in der Form "mysql.051". Einige davon sind über 100MB groß.
>>> Die nehmen 'ne ganze Menge Speicher weg. Kann man die nicht löschen?
>>
>> Ja, na klar kann man.

Andreas, bitte ärgere die jungen nicht immer!

> Was sind das für Dateien? Ich nehme mal an Log- oder Cache-Files.
> Werden die nicht automatisch irgendwann gelöscht?

*DATA*, was kann eine ein *DATEN*banksystem da wohl drin speichern, nur mal
so als Wink mit dem Brückenpfeiler :-)

HTH
Norbert

Re: Datenupdate

am 26.07.2006 21:22:11 von Carsten Wiedmann

Oscar76 schrieb:

> Eine Frage noch nebenbei. Im Unterverzeichnis /Data von mysql sind
> Dateien in der Form "mysql.051". Einige davon sind über 100MB groß.
> Die nehmen 'ne ganze Menge Speicher weg. Kann man die nicht löschen?

Hört sich an, als hättest du das Binary Log [1] aktiviert. Deaktiviere
dieses, und starte den Server neu. Dann kannst du diese Dateien löschen.

Gruß
Carsten

[1] http://dev.mysql.com/doc/refman/5.0/en/binary-log.html

Re: Datenupdate

am 26.07.2006 21:47:01 von Andreas Kretschmer

Andreas
--
q: why do so many people take an instant dislike to mysql?
a: it saves time (oicu in #postgresql)
Explaining the concept of referential integrity to a mysql user is like
explaining condoms to a catholic (Shadda in #postgresql)

Re: Datenupdate

am 27.07.2006 16:46:39 von unknown

Post removed (X-No-Archive: yes)

Re: Datenupdate

am 27.07.2006 17:09:12 von Thomas Rachel

Robert Eckl wrote:

>>> Wieso soll sich jemand der Windows benutzt, sich ein CygWin
>>> installieren oder ein anderes OS benutzen, um das Tool "awk" zu
>>> benutzen?
>>
>> Oder gibt es das?
>>
> Bei CygWin und MSYS ist AFAIK awk dabei.

CygWin hatte ich ja selbst erwähnt; MSYS werde ich mir mal im Hinterkopf
behalten, falls ich es mal brauchen sollte. (Das ist das Teil, das zu MinGW
gehört, oder?)


>> Das war nicht das, was ich meinte - ich habe neben den hinzugekommenen
>> Datenbankkenntnissen auch festgestellt, daß einem unter einem *x
>> wesentlich mehr Tools zur Verfügung stehen, wesentlich weniger die Hände
>> gebunden sind und man wesentlich mehr Freiheiten hat als unter Windows.
>>
> Vor ein paar Wochen hatte ich mich hier "beschwert", daß die
> Bearbeitungsmöglichkeiten unter Win so unbequem seien. Freundlicherweise
> wurde ich hier darauf gestossen, daß das eine faule Ausrede sei. Ich
> hatte einfach befürchtet, mich in ganz Neues (Perl, php, lisp, ...)
> einarbeiten zu müssen; aber ich mußte nur sed für WIN finden und ein
> paar einfache shell-Commandos ausgraben. So war der als aufwendig
> eingestufte Teil eigentlich ganz einfach. Viele Tools sind auch unter
> Win nutzbar, wenn sie "dort" auch nicht ganz so verbreitet und bekannt
> sind.

(OT) Ja, aber es ist einfach ganz allgemein ein ganz anderes Gefühl unter
Linux - Autocompleting und session-übergreifende History in der bash (ja,
bash unter cygwin ist und bleibt eine Notlösung).

Ist es bei den neuesten Versionen eigentlich immer noch so, das Pipes in der
Eingabezeile über temporäre Dateien realisiert werden? *shudder*


Thomas
--
> Bitte nicht gleich losschimpfen,
Das ist hier auch nicht Sitte. Denn hier ist hamster.all und nicht de.all.
(Maik Bauch und Joern Weber in hamster.de.config; 2000-09-24)

Re: Datenupdate

am 27.07.2006 20:17:54 von unknown

Post removed (X-No-Archive: yes)

Re: Datenupdate

am 28.07.2006 09:18:09 von bartez2004-apoll

Thomas Rachel schrieb:

> Und das hat geklappt? Kann ich mir fast nicht vorstellen.
>
> Ich nehme an, Du hast jetzt in Mitglieder weiterhin die Zeilen mit dem
> gelöschten Wohnort und des weiteren neue Zeilen mit ausschließlich dem
> Wohnort drin. DAs ist ja nicht ganz so das Gelbe vom Ei...
>
>
> Versuchs mal mit
>
> UPDATE mitglieder JOIN tabelle USING (mitgliedsnummer) SET
> mitglieder.wohnort=3Dtabelle.wohnort;
>
>
> Denn Du willst ja keine neuen Zeilen hinzufügen, sondern bestehende
> Zeilen korrigieren...
>

Jo. Hast recht. Der hat mir einfach den Inhalt einer Spalte in die
Tabelle geknallt. Dein Befehl klappt doch. Sorry für meinen vorherigen
Post.


> Thomas
> --
> Ich finde, mit OE zu mailen ist wie in Thailand "Spaß" haben ohne Gummi.
> (Sönke Müller-Lund in d=
clj)

Re: Datenupdate

am 28.07.2006 09:32:16 von bartez2004-apoll

Carsten Wiedmann schrieb:

> Hört sich an, als hättest du das Binary Log [1] aktiviert. Deaktiviere
> dieses, und starte den Server neu. Dann kannst du diese Dateien löschen.
>
> Gruß
> Carsten
>
> [1] http://dev.mysql.com/doc/refman/5.0/en/binary-log.html


So, ich habe mich durch das Handbuch gewurschtelt. Da die Datei z.B.
mysql.051 heißt, gehe ich davon aus, dass die Datenbank mysql geloggt
wird. Wenn ich das Handbuch richtig verstanden habe, muss ich jetzt
folgendes ins Dos eingeben, damit nichts mehr geloggt wird:

mysqld binlog-ignore-db=3Dmysql

Mache ich dies erscheint folgende Meldung:

Can't start server: Bind on TCP/IP port: No error
060728 9:31:28 Do you already have another mysqld server running on
port: 3306
?
060728 9:31:28 Aborting

060728 9:31:28 mysqld: Shutdown Complete

Was mache ich falsch?

Re: Datenupdate

am 28.07.2006 09:37:23 von Frank Schenk

Oscar76 wrote:
>
> So, ich habe mich durch das Handbuch gewurschtelt. Da die Datei z.B.
> mysql.051 heißt, gehe ich davon aus, dass die Datenbank mysql geloggt
> wird. Wenn ich das Handbuch richtig verstanden habe, muss ich jetzt
> folgendes ins Dos eingeben, damit nichts mehr geloggt wird:
>
> mysqld binlog-ignore-db=mysql
>
> Mache ich dies erscheint folgende Meldung:
>
> Can't start server: Bind on TCP/IP port: No error
> 060728 9:31:28 Do you already have another mysqld server running on
> port: 3306
> ?
> 060728 9:31:28 Aborting
>
> 060728 9:31:28 mysqld: Shutdown Complete
>
> Was mache ich falsch?

my.cnf ->binlog ausschalten
mysqld restart

Falls es die my.cnf nicht gibt:
mysqld stop
mysqld --datadir= --basedir= binlog-ignore-db=mysql ...weitere
konfigurationsdirektiven


je nachdem auf welchem OS mysql läuft und welcher Daemonhandler sich ums
Starten und Stoppen von Daemons kümmert.

Aber das hat dir Carsten eigentlich schon alles erklärt...

Frank

Re: Datenupdate

am 28.07.2006 09:46:38 von Thomas Rachel

Oscar76 wrote:
^^^^^^^
Ähm...

> So, ich habe mich durch das Handbuch gewurschtelt. Da die Datei z.B.
> mysql.051 heißt, gehe ich davon aus, dass die Datenbank mysql geloggt
> wird. Wenn ich das Handbuch richtig verstanden habe, muss ich jetzt
> folgendes ins Dos eingeben, damit nichts mehr geloggt wird:
>
> mysqld binlog-ignore-db=mysql

Stop. Es handelt sich bei diesem binlog-ignore-db=mysql (wenn das denn so
stimmt, damit kenne ich mich nicht aus) um einen Startparameter für den
Daemon.

Das obige würdest Du eingeben, wenn der Daemon mal ausnahmsweise so
gestartet werden soll. Da Du das aber wohl immer so willst (oder?),
solltest Du den Parameter permanent eintragen. Dazu gibt es die my.cnf. Wo
die unter Deinem OS (=Windows?) genau liegt, weiß ich nicht.

Dann könnte es noch sein, daß die Diensteverwaltung in Windows auch ein Ort
sein könnte, wo man solche Parameter unterbringen kann. Damit kenn ich mich
ncht aus, aber es könnte ein Stichwort sein, an dem Du weiterarbeiten
kannst...


Thomas
--
>Ich bin anscheinend nicht so geschmacklos, ich habe meine Frau in
>de.talk.romance kennengelernt...
Man sagt "aus de.talk.romance gedownloaded". (K. Koehntopp in d.a.f.u)

Re: Datenupdate

am 28.07.2006 11:32:30 von bartez2004-apoll

So. Hab es jetzt hinbekommen obwohl es anfangs nicht geklappt hat. Erst
habe ich im Windows-Dienstemanager den mysql-server gestoppt. Dann habe
ich die empfohlene Syntax in der DOS-Eingabeaufforderung eingegeben.
Danach kam aber kein DOS-Prompt mehr. Der Dienst ließ sich danach auch
nicht mehr starten. Folge Windows-Reboot.

Beim Start merkte ich, dass ich winmysqladmin im Autostart habe. Dort
habe ich in der mysql.ini folgendes auskommentiert "log-bin
=3DC:/Programme/mysql/data/mysql.log". Dienst neu gestartet.
-> Läuft.

Ich finde es nicht gut, dass mehrere Programme ein und das gleiche
steuern wollen und sich deshalb gegenseitig behindern.

Re: Datenupdate

am 28.07.2006 14:19:55 von Dirk Brosowski

Oscar76 schrieb:
> So. Hab es jetzt hinbekommen obwohl es anfangs nicht geklappt hat. Erst
> habe ich im Windows-Dienstemanager den mysql-server gestoppt. Dann habe
> ich die empfohlene Syntax in der DOS-Eingabeaufforderung eingegeben.
> Danach kam aber kein DOS-Prompt mehr. Der Dienst ließ sich danach auch
> nicht mehr starten. Folge Windows-Reboot.
>
> Beim Start merkte ich, dass ich winmysqladmin im Autostart habe. Dort
> habe ich in der mysql.ini folgendes auskommentiert "log-bin
> =C:/Programme/mysql/data/mysql.log". Dienst neu gestartet.
> -> Läuft.
>
> Ich finde es nicht gut, dass mehrere Programme ein und das gleiche
> steuern wollen und sich deshalb gegenseitig behindern.
>

Das ist auch nicht so. Es gibt mehrere Stellen an denen der Parameter
stehen kann.

1. Als Parameter beim Start des Daemons -> Diensteverwaltung, kann aber
nur beim Start aus der grafischen Oberfläche jeweils neu angegeben
werden, nicht aber gespeichert.
2. my.cnf des Users. Ob es die unter Windows überhaupt gibt .. ka.
3. my.cnf in /WINDOWS/

gestoppt oder gestartet wir das immer über den Daemon ..

net start mysql (das passiert beim Systemstart .. kein Parameter
angeben -> my.cnf

net stop mysql

Viel Grüße

Dirk