J'essaie d'insérer des informations de paiement factices dans une base de données dev avec cette requête:
INSERT
INTO
Payments(Amount)
VALUES(12.33)
WHERE
Payments.CustomerID = '145300';
Comment peut-on ajuster ceci pour exécuter? J'ai aussi essayé quelque chose comme ça:
IF NOT EXISTS(
SELECT
1
FROM
Payments
WHERE
Payments.CustomerID = '145300'
) INSERT
INTO
Payments(Amount)
VALUES(12.33);
Je pense que vous essayez de faire une déclaration de mise à jour (définir le montant = 12,33 pour le client avec l'ID = 145300)
UPDATE Payments
SET Amount = 12.33
WHERE CustomerID = '145300'
Sinon, si vous essayez d'insérer une nouvelle ligne, vous devez utiliser
IF NOT EXISTS(SELECT 1 FROM Payments WHERE CustomerID = '145300')
INSERT INTO Payments(CustomerID,Amount)
VALUES('145300',12.33)
Ou si vous voulez combiner la commande (si le client existe, mettez à jour sinon insérez une nouvelle ligne)
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'
Si vous souhaitez insérer de nouvelles lignes avec l'ID client donné
INSERT
INTO
Payments(Amount,CustomerID )
VALUES(12.33,'145300');
sinon, si vous avez déjà un paiement pour le client, vous pouvez faire:
UPDATE
Payments
SET Amount = 12.33
WHERE
CustomerID = '145300';
Cela ressemble à avoir le customerID déjà défini. Dans ce cas, vous devez utiliser une instruction update pour mettre à jour une ligne. Les instructions d’insertion ajouteront une toute nouvelle ligne qui ne peut pas contenir de valeur.
Voulez-vous effectuer la mise à jour?
update Payments set Amount = 12.33 where Payments.CustomerID = '145300'
Ok, il semble que je doive en fait simplement insérer un insert dans la table Paiements contenant le bon code client, car il n’existe actuellement aucun paiement avec ce code client, je ne peux donc pas le mettre à jour.
J'ai exécuté INSERT INTO Payments (CustomerID, Amount, PaymentTypeID) Values ('145300', 24.99, 8);
puis SELECT * FROM Payments WHERE Payments.CustomerID = '145300';
pour confirmer et nous sommes en affaires. Merci tout le monde!