2017-05-03 2 views
1

Ich verwende Google SQL. Ich habe ein Programm, das Benutzer die Daten der Datenbank ändern können, wenn es denselben Benutzernamen in der Datenbank gibt. Der Benutzer verwendet POST, um seine Informationen in der Datenbank zu veröffentlichen. Nachdem ich auf einige Fragen und Antworten zu StackOverFlow hingewiesen habe, habe ich den folgenden Code erreicht, funktioniert aber nicht.Auf Duplicate Key Update Java

try{ 
    Class.forName("com.mysql.jdbc.GoogleDriver"); 
    conn = DriverManager.getConnection(DB_URL); 
    String sql = "INSERT INTO 'data' ('username', 'UUID', 'tenant_id', 'site_id')" 
    + "VALUES(?, ?, ?, ?)" 
    + "ON DUPLICATE KEY UPDATE" 
    + "UUID = VALUES(UUID), tenant_id = VALUES(tenant_id), site_id = VALUES(site_id)"; 
    stat = conn.prepareStatement(sql); 
    stat.setString(1, UserName1); 
    stat.setString(2, UUID1); 
    stat.setString(3, Tenant_ID1); 
    stat.setString(4, Site_ID1); 
    stat.executeUpdate(); 
    stat.close(); 
    conn.close(); 
} 

Mein Code in der Lage, ohne die ON DUPLICATE KEY UPDATE zu arbeiten, aber nach dem Einschalten, dass hinzufügen, werden sie nicht in der Lage zu arbeiten. Ich bin noch neu zu Java und SQL und bereit, irgendwelche Meinungen vom Benutzer hier zu akzeptieren. Danke für alle Antworten.

+0

sein, was der Fehler ist, dass Sie bekommen jetzt – MohanaPriyan

+0

Hallo @MohanaPriyan ich keine Fehler. Ich bin gerade nicht in der Lage, die Daten in der Datenbank zu ändern, wenn der Benutzername derselbe ist. –

+0

Ich denke, Sie müssen Platz geben nach "auf doppelten Schlüssel Update" – MohanaPriyan

Antwort

1

Dank @MohanaPriyan und @YCF_L Beratung. Ich habe es geschafft, das Problem zu lösen. Der richtige Code sollte

String sql = "INSERT INTO data (username, UUID, tenant_id, site_id)" + "VALUES(?, ?, ?, ?)" + "ON DUPLICATE KEY UPDATE" + " UUID = VALUES(UUID), tenant_id = VALUES(tenant_id), site_id = VALUES(site_id)";

Verwandte Themen