# Problem with INSERT.............ON DUPLICATE KEY



## chrism120 (9. Okt 2019)

Servus, ich habe eine Scansystem von IP Adresse gebastelt. Mein System macht folgendes. Das scant das ganze Netzwerk und speichert diese IP Adresse in einer Datenbank. Man kann auch IPadresse aus Datenbank lesen.  Nun habe ich folgendes Problem. Beim Einfügen möchte ich keine Doppelte IP und Hostname haben.Y ich habe es versucht mit eine SQL-Anfrage zu bewältigen aber kommt immer die Fehlermeldung raus. 
bitte kann jd mir dabei helfen. Danke im Voraus für Ihre Hilfe.
Das ist meine Insert-function

```
// insert date in database
 
public static void  insertdb(String sql,String ip,String HostName,int s) {
      try {
          
          st=conn.prepareStatement(sql);
          st.setString(1,ip);
          st.setNString(2, HostName);
          st.setInt(3, s);
          st.executeUpdate();
          System.out.println("Insertion ok");
      
          
  }
      catch (SQLException e) {
          
          System.out.println("Problem by inserting " + e );
          
      }
  }
```
und hier rufe ich die auf

```
insertdb("\"INSERT INTO Adresse (Ip,HostName,ThreadNummer) VALUES (?,?,?) ON DUPLICATE KEY UPDATE  Ip=Ip+1,HostName=HostName+1,ThreadNummer=ThreadNummer+1",s,ad.getHostName(),2);
```


----------



## mrBrown (9. Okt 2019)

chrism120 hat gesagt.:


> ich habe es versucht mit eine SQL-Anfrage zu bewältigen aber kommt immer die Fehlermeldung raus.


Welche Fehlermeldung?

(Wenn ich von deinen letzten Beiträgen ausgehe: sqlserver kennt ON DUPLICATE KEY nicht, daher wird das einen Fehler werfen.)


----------



## chrism120 (9. Okt 2019)

ja stimmt !!!!!!


----------



## chrism120 (9. Okt 2019)

Ich habe


mrBrown hat gesagt.:


> Welche Fehlermeldung?
> 
> (Wenn ich von deinen letzten Beiträgen ausgehe: sqlserver kennt ON DUPLICATE KEY nicht, daher wird das einen Fehler werfen.)


ja ich habe einen Primaärschlüssel festgelegt , leider kriege ich immer eine Felhermeldung :
Gibt es eine Möglichkeit zu prüfe ob die Daten in der Datenbank schon liegt,bevor das Programm reinschreibt? also ich suche einen guten  Ansatz.


----------

