Dans PostgreSQL, la requête
DELETE FROM user_job_titles WHERE id IN ( "c836d018-1d12-4507-a268-a4d80d6d3f54", "d0961a90-7d31-4c4c-9c1b-671115e3d833", "62dda420-6e62-4017-b41d-205c0aa82ead" )
échoue avec une erreur "erreur : la colonne [valeur] n'existe pas". En effet :
Dans PostgreSQL, les guillemets doubles sont utilisés comme caractères d'échappement pour faire référence aux noms de tables et de colonnes. Lorsqu'ils sont utilisés par inadvertance avec des chaînes littérales, ils peuvent conduire à une syntaxe incorrecte. Dans la requête donnée, les valeurs de la liste IN sont placées entre guillemets doubles, ce qui oblige PostgreSQL à les interpréter comme des noms de colonnes plutôt que comme des constantes de chaîne.
À résolvez le problème, placez les valeurs entre guillemets simples :
DELETE FROM user_job_titles WHERE id IN ( 'c836d018-1d12-4507-a268-a4d80d6d3f54', 'd0961a90-7d31-4c4c-9c1b-671115e3d833', '62dda420-6e62-4017-b41d-205c0aa82ead' );
De cette façon, PostgreSQL interprète les valeurs comme des constantes de chaîne et les compare correctement avec la colonne id de la table user_job_titles.
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!