Hallo,
ich möchte bestimmte Datensätze aus einer Tabelle(artikel) in eine andere Tabelle(translation), die später für die Volltextsuche dienen soll, einfügen. Dabei soll aber geprüft werden, ob der Datensatz schon vorhanden ist. Zusätzlich ist noch zu sagen, die neue Tabelle wird immer wieder aktualierst werden und die alte beinhaltet ein paar Hunderttausend/Millionen Datensätze (so genau kann ich das net sagen), deshalb sind Lösungsvorschläge wie "nachdem Einfügen doppelte löschen oder von der einen Tabelle in wieder eine neue Tabelle verschieben und doppelte filtern" für mich schwachsinnig und können weggelassen werden.
Ich hatte ma was von UNIQUE gelesen, aber auch nur in Verbindung mit Integer. Nur die Spalte, die nicht doppelt sein darf, ist ein Text (bestehend aus mehreren Wörtern).
Und REPLACE hatte ich mal versucht, aber das haute dann auch net wirklich hin...
Ein kleiner Auszug aus dem Programm
Also beim ersten Durchlauf des Programms sind die Daten in der Tabelle ja korrekt, nur wenn ich dann weitere mache, fügt es ja immer die selben wieder ein.
Hoffe, jemand kann mir helfen <.<
Ähm ja.. vllt noch erwähnenswert, ich arbeite mit MySQL 5.0
EDIT: Mir is noch was eingefallen, nur weiß ich nicht wirklich, wie ich es realisieren soll:
ich möchte bestimmte Datensätze aus einer Tabelle(artikel) in eine andere Tabelle(translation), die später für die Volltextsuche dienen soll, einfügen. Dabei soll aber geprüft werden, ob der Datensatz schon vorhanden ist. Zusätzlich ist noch zu sagen, die neue Tabelle wird immer wieder aktualierst werden und die alte beinhaltet ein paar Hunderttausend/Millionen Datensätze (so genau kann ich das net sagen), deshalb sind Lösungsvorschläge wie "nachdem Einfügen doppelte löschen oder von der einen Tabelle in wieder eine neue Tabelle verschieben und doppelte filtern" für mich schwachsinnig und können weggelassen werden.
Ich hatte ma was von UNIQUE gelesen, aber auch nur in Verbindung mit Integer. Nur die Spalte, die nicht doppelt sein darf, ist ein Text (bestehend aus mehreren Wörtern).
Und REPLACE hatte ich mal versucht, aber das haute dann auch net wirklich hin...
Ein kleiner Auszug aus dem Programm
PHP Code:
rs = st.executeQuery("Select a.ArtikelNr, a.Kurztext, b.Kurztext from artikel a, artikelfremdsprachen " +
"b where a.ArtikelID=b.ArtikelID and b.SprachenID=2");
Statement st1 = con.createStatement();
while(rs.next()){
st1.executeUpdate("insert into translation (Deutsch, Quelle, QuelleNummer, Englisch) " +
"values ('"+rs.getString("a.Kurztext")+"', '1', '"+rs.getString("a.ArtikelNr")+"'," +
" '"+rs.getString("b.Kurztext")+"') ");
}
Also beim ersten Durchlauf des Programms sind die Daten in der Tabelle ja korrekt, nur wenn ich dann weitere mache, fügt es ja immer die selben wieder ein.
Hoffe, jemand kann mir helfen <.<
Ähm ja.. vllt noch erwähnenswert, ich arbeite mit MySQL 5.0
EDIT: Mir is noch was eingefallen, nur weiß ich nicht wirklich, wie ich es realisieren soll:
PHP Code:
select ID from translation where Deutsch = rs.getString("a.Kurztext")
if ID > 0 dann vorhanden, d.h. nicht mehr in translation einfügen
Comment