Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment convertir les paramètres liés du point d'interrogation de style MySQL `?` en paramètres liés de style Postgres `$ 1`

NON. Et il n'y a pas de correspondance directe entre ? et $1 syntaxe, car cette dernière implique la réutilisation des paramètres, tandis que ? ne le permet pas. Par exemple, en utilisant ? ? ? implique que vous avez 3 paramètres de formatage, tandis que $1 $2 $2 implique que vous avez deux paramètres de formatage.

Peu probable, puisqu'il n'y a pas de correspondance directe, la conversion n'est possible que dans un sens, ce qui rendrait un tel utilitaire assez inutile. Vous pouvez tout remplacer vous-même, avec une seule expression régulière, en remplaçant chaque ? avec $ + index + 1 .

Vous n'avez pas vraiment le choix. Il faut le faire. En plus, $1 est bien plus flexible que ? , en raison de la réutilisation des paramètres, ainsi que des extensions facultatives. Par exemple, pg-promise les étend très bien, avec divers modificateurs de formatage fréquemment nécessaires :^ , ~ , :json , :csv , etc...

Vous passerez probablement moins de temps à convertir votre SQL à la main qu'à écrire un utilitaire pour la conversion correcte à sens unique.