Maison >base de données >tutoriel mysql >Pourquoi mon instruction PostgreSQL DELETE échoue-t-elle avec « Erreur : la colonne n'existe pas » ?

Pourquoi mon instruction PostgreSQL DELETE échoue-t-elle avec « Erreur : la colonne n'existe pas » ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-19 08:34:091109parcourir

Why Does My PostgreSQL DELETE Statement Fail with

Dépannage « Erreur : la colonne n'existe pas » lors de la suppression de PostgreSQL

Lors de la tentative de suppression d'enregistrements d'une table PostgreSQL à l'aide de Java JDBC, vous pouvez rencontrer une erreur indiquant que la colonne spécifiée dans la requête DELETE n'existe pas. Pour résoudre ce problème, considérez les éléments suivants :

Sensibilité à la casse des noms d'entité d'échappement

PostgreSQL est sensible à la casse pour les noms d'entités (par exemple, les noms de tables et de colonnes). Si le nom de votre colonne contient des lettres majuscules, vous devez le mettre entre guillemets ("") pour ne pas respecter la casse.

Par exemple, si votre colonne est nommée "MAC", modifiez votre requête comme suit :

String stm = "DELETE FROM hostdetails WHERE \"MAC\" = 'kzhdf'";

Éviter la définition de valeur directe dans les instructions préparées

Utilisation de pst.executeUpdate() avec définition de valeur directe dans les déclarations préparées n’est pas recommandé. Utilisez plutôt pst.setString(1, "kzhdf") pour définir la valeur du paramètre en toute sécurité.

String stm = "DELETE FROM hostdetails WHERE \"MAC\" = ?";
...
pst.setString(1, "kzhdf");
pst.executeUpdate();

Cela garantit que tous les caractères spéciaux potentiels ou tentatives d'injection SQL sont traités en toute sécurité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn