Lors de la tentative de mise à jour de plusieurs lignes à l'aide d'une expression VALUES, PostgreSQL peut rencontrer une erreur lorsque les valeurs fournies incluent des valeurs NULL . En effet, PostgreSQL attribue automatiquement des types de données en fonction des valeurs littérales de l'expression, ce qui peut entraîner des incohérences lorsque vous essayez de faire correspondre les valeurs nulles avec les types de colonnes réels.
Pour résoudre ce problème, envisagez ces techniques :
Interrogez information_schema ou pg_catalog pour déterminer les types de colonnes de la table cible. Cela vous permet de convertir explicitement les valeurs de l'expression VALUES vers les types corrects.
Créez une sous-requête qui récupère une seule ligne avec des valeurs nulles pour établir les types de colonnes. Ensuite, utilisez UNION ALL pour ajouter les lignes restantes avec les valeurs de données réelles. Cela garantit que les types de colonnes sont correctement définis.
Fournissez les types de colonnes pour chaque valeur dans l'expression VALUES. Cela permet à PostgreSQL de résoudre les types sans ambiguïté.
Encodez chaque ligne de l'expression VALUES en tant que type de ligne correspondant à la table cible. Cela attribue implicitement les types de colonnes corrects.
Similaire à la technique 4, mais spécifiez uniquement les types de colonnes pertinents dans l'expression VALUES. Récupérez le type de ligne de la table cible et extrayez les types de colonnes requis pour la conversion.
En adoptant l'une de ces méthodes, vous pouvez résoudre efficacement le problème de conversion de type nul dans les requêtes de mise à jour multi-lignes et garantir des mises à jour de données cohérentes. .
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!