sql >> Database teknologi >  >> RDS >> Mysql

Sådan konverteres MySQL-stil spørgsmålstegn `?` bundne parametre til Postgres-stil `$1` bundne parameter

INGEN. Og der er ingen direkte overensstemmelse mellem ? og $1 syntaks, fordi sidstnævnte indebærer genbrug af parameter, mens ? tillader det ikke. For eksempel ved at bruge ? ? ? betyder, at du har 3 formateringsparametre, mens $1 $2 $2 betyder, at du har to formateringsparametre.

Ikke sandsynligt, da der ikke er nogen direkte korrespondance, er konverteringen kun mulig én vej, hvilket ville gøre et sådant værktøj ret ubrugeligt. Du kan selv erstatte alt med et enkelt regulært udtryk, og erstatte hver ? med $ + index + 1 .

Du har ikke rigtig meget valg i dette. Det skal gøres. Desuden $1 er langt mere fleksibel end ? , på grund af genbrug af parameter plus valgfri udvidelser. For eksempel, pg-promise udvider dem meget pænt med forskellige formateringsmodifikatorer, der ofte er nødvendige:^ , ~ , :json , :csv osv...

Du vil sandsynligvis bruge mindre tid på at konvertere din SQL manuelt end på at skrive et værktøj til den korrekte envejskonvertering.



  1. Forøg automatisk en varchar i sql-forespørgsel

  2. Hvad er nyt i Postgres-XL 9.6

  3. Ruby gem mysql2 installation mislykkedes

  4. Dvale Soft Slet ved hjælp af update Cascade