2017-03-04 4 views
0

existiert ich im Moment ein Problem mit SQL bin vor, ich habe dies in einer Tabelle, die eine Beziehung zwischen zwei Spalten bekommt, wie sie zusammen als eindeutige Schlüssel verknüpft sind (id, CharID) und die Verwendung dieser Beziehung möchte ich feststellen, ob ich es eingefügt werden soll oder nicht, so dass, wenn die folgenden bereits vorhandenAktualisierung statt Einfügen, wenn die Zeile bereits

[charid: 1, id: 1]

ich möchte es aktualisieren, anstatt eine neue Zeile einzufügen, aber wenn wir eine Zeile einfügen wie dies und Charid 1, ID 1 existiert bereits, das ist OK und wir können es einfügen.

[charid: 1, id: 1]

Wie kann ich dies richtig tun? Ich habe gehört, dass dies durch die Verwendung von Einschränkungen mit den Spalten möglich ist.

+0

Ist der eindeutige Schlüssel auch der Primärschlüssel? – Bohemian

Antwort

0

SQL Server:

UPDATE R 
SET R.COLUMN = VALUE 
FROM dbo.TABLE1 AS R 
INNER JOIN dbo.TABLE2 AS P 
     ON R.charid = P.id 

** bearbeiten, müssen Sie tatsächlich eine Unterabfrage mit "WHERE EXISTS-Klausel". Wird in Kürze aktualisiert.

UPDATE R 
SET R.COLUMN = VALUE 
FROM dbo.TABLE1 AS R 
WHERE EXISTS (SELECT P.id 
       FROM dbo.TABLE2 AS P 
       WHERE R.charid = P.id) 
0

Es stellt sich heraus, wenn Sie einen Primärschlüssel oder zwei haben, können Sie die folgenden stattdessen tun:

(Bitte beachten Sie: Sie müssen atleast einen Primärschlüssel für diese)

INSERT INTO arcade (id, charid, highscore) VALUES (?, ?, ?) ON DUPLICATE KEY UPDATE highscore = ?

das macht es so, dass, wenn es gibt einen doppelten Schlüssel, es die Zeile anstatt zu versuchen, aktualisiert etwas einfügen!

Verwandte Themen