Archiv verlassen und diese Seite im Standarddesign anzeigen : Access mit mysql-verbindung: datensätze einfügen ...
Gaestle
2004-02-17, 17:19:33
Hallo,
ich würde gern in eine Access Datenbank mehrere (genauer etwa 2500) Datensätze "auf einen Schlag" einfügen.
Die Access-Datenbank ist per odbc-treiber an 'ne mysql-datenbank drangebastelt und dient dazu, die auf 'nem server befindliche sql-datenbank zu steuern.
Per "copy&paste" (zum einfügen von kopierten datensätzen) bekomme ich dummerweise immer 'ne Fehlermeldung mit dem Hinweis:
"ODBC-Aufruf fehlgeschlagen. [mysql][odbc 3.51 - driver][mysqld-3.23.35a] duplicate entry '1632' for key1 (#1602)"
hat jemand einen tipp zur lösung des problems? oder einen tipp, wo ich sonst noch fragen kann?
danke!
grüße
HellHorse
2004-02-17, 21:04:25
Kann es sein, dass du in der Quell- und Zieltabelle je ein Tupel enthalten ist, die den gleichen Primärschlüsselwert haben?
Es also in der Quell- und Zieltabelle für das Primärschlüsselattribt z.B. id je ein Tupel gibt, wo der Wert für id '1632' ist?
Gaestle
2004-02-18, 17:51:53
Ähem, sorry, soll den den Kram nur benutzen, gebastelt hat die ganze Geschichte jemand anderes (an den ich leider nicht mehr rankomme).
Kannst Du das vielleicht nochmal ganz langsam und verständlich - sozusagen zum mitmeisseln ;) - erklären?
Danke.
Grüße
HellHorse
2004-02-18, 19:32:35
Weiss nicht ob ich es selber verstanden hätte ;)
Ok, folgendes Problem:
Access MySQL
ID VALUE ID VALUE
-----+---------- -----+----------
... | ... ... | ...
1632 | 'hallo ' 1632 | 'welt'
... | ... ... | ...
Du willst den Inhalt von der rechten Tabelle (in MySQL) in die like kopieren (in Access).
Das Problem dabei:
Das Attribut ID ist als Primärschlüssel definiert (Annahme). D.h. es darf in der Spalte ID keine zwei Zellen mit dem gleichen Wert gegeben.
Darum würde das hier fehlschlagen.
Gaestle
2004-02-19, 15:48:46
Achso, nein, ich glaube nicht, dass es das ist. Zu dieser Annahme bringen mich zwei sachen:
a) die Datensätze müssen neu generiert werden, d.h. es existiert da noch gar nix
und b) bei den Datensätzen, die schon exisieren, konnte ich die eingetragenen Werte problemlos ändern.
Hast Du vielleicht noch 'ne andere Idee????
Danke!
Grüße
Marcel
2004-02-19, 17:17:22
Ich hab zwei:
a)
In der MySQL-Tabelle existiert ein Feld, welches in der Access-Tabelle nicht existiert, und jenes ist mit einem Index belegt, welcher das Attribute 'unique' (eindeutig) hat.
b)
In der MySQL-Tabelle existiert ein Feld, welches zwar in der Access-Tabelle auch existiert, aber nur in der MySQL-Tabelle mit einem unique Index belegt ist.
Wenn Du einen Teil der Datensätze (mehr als 1) erfolgreich importieren kannst, dann kommt eigentlich nur Fall b) in Frage.
Gaestle
2004-02-23, 11:01:53
Danke für Euer Interesse, aber ich glaube, ich habe das Problem schlecht beschrieben.
Das Problem ist, dass ich keine Datensätze NEU generieren kann. Also ich will neue Datensätze anlegen, und zwar direkt im Access. Dass da noch 'ne mySQL-DaBa dranhängt, war eher so als NEBENSÄCHLICHE Info gedacht.
Anyway.
Zum Generieren einen EINZELNEN Datensatzes klicke ich im Acccess z.B. auf den kleinen Button mit dem Symbol >* .
Wenn ich MEHRERE Datensätze einfügen will, kopiere ich normalerweise erstmal ein paar schon vorhandene Datensätze und füge die dann in die bestehende Datensatztabelle ein.
Nur leider funktioniert eben das nicht.
Das ist das Problem...
Danke!
Grüße
Marcel
2004-02-23, 11:22:51
Fakt ist jedenfalls, dass in einem Feld der MySQL-Tabelle ein Wert eingetragen werden soll, der in einem anderen Datensatz in dieser Tabelle bereits vergeben ist, und dass auf diesem Feld ein eindeutiger Index aufsetzt.
Wobei kein Wert (leeres Feld) auch ein Wert ist.
Gaestle
2004-02-24, 11:14:45
Hallo, ich hab's dann. Danke an Euch!
Ich hatte immer versucht, Datensätze zu kopieren, wo unterschiedliche Werte (also Zeile 1 = 5; Zeile 2 = 9 usw.) drinstanden. Ich habe dann mal datensätze kopiert, wo immer das gleiche drinstand (nämlich 0) und das hat funktioniert.
Danke nochmal!
Grüße
vBulletin®, Copyright ©2000-2025, Jelsoft Enterprises Ltd.