Ich versuche, mit dieser Abfrage einige Schein-Zahlungsinformationen in eine Dev-Datenbank einzufügen:
INSERT
INTO
Payments(Amount)
VALUES(12.33)
WHERE
Payments.CustomerID = '145300';
Wie kann man das anpassen? Ich habe auch so etwas ausprobiert:
IF NOT EXISTS(
SELECT
1
FROM
Payments
WHERE
Payments.CustomerID = '145300'
) INSERT
INTO
Payments(Amount)
VALUES(12.33);
Ich denke, Sie versuchen, eine Aktualisierungsanweisung zu machen (Betrag = 12.33 für Kunden mit ID = 145300)
UPDATE Payments
SET Amount = 12.33
WHERE CustomerID = '145300'
Andernfalls, wenn Sie versuchen, eine neue Zeile einzufügen, müssen Sie verwenden
IF NOT EXISTS(SELECT 1 FROM Payments WHERE CustomerID = '145300')
INSERT INTO Payments(CustomerID,Amount)
VALUES('145300',12.33)
Oder wenn Sie beide Befehle kombinieren möchten (falls ein Kunde vorhanden ist, aktualisieren Sie bitte eine neue Zeile)
IF NOT EXISTS(SELECT 1 FROM Payments WHERE CustomerID = '145300')
INSERT INTO Payments(CustomerID,Amount)
VALUES('145300',12.33)
ELSE
UPDATE Payments
SET Amount = 12.33
WHERE CustomerID = '145300'
Wenn Sie neue Zeilen mit der angegebenen CustomerID einfügen möchten
INSERT
INTO
Payments(Amount,CustomerID )
VALUES(12.33,'145300');
wenn Sie bereits eine Zahlung für den Kunden haben, können Sie Folgendes tun:
UPDATE
Payments
SET Amount = 12.33
WHERE
CustomerID = '145300';
Es klingt, als hätte man die customerID bereits gesetzt. In diesem Fall sollten Sie eine Aktualisierungsanweisung verwenden, um eine Zeile zu aktualisieren. Einfügeanweisungen fügen eine komplett neue Zeile hinzu, die keinen Wert enthalten kann.
Möchten Sie ein Update durchführen?
update Payments set Amount = 12.33 where Payments.CustomerID = '145300'
Ok, es sieht so aus, als müsste ich eigentlich nur eine Einfügung in die Tabelle "Zahlungen" vornehmen, die die korrekte Kunden-ID hat, da derzeit keine Zahlungen mit dieser Kunden-ID vorhanden sind. Daher kann ich sie nicht aktualisieren.
Ich habe INSERT INTO Payments (CustomerID, Amount, PaymentTypeID) Values ('145300', 24.99, 8);
und dann SELECT * FROM Payments WHERE Payments.CustomerID = '145300';
zur Bestätigung ausgeführt und wir sind im Geschäft. Vielen Dank an alle!