sql >> Database teknologi >  >> RDS >> PostgreSQL

Sådan forhindrer du PostgreSQL i at ændre mine pænt formaterede SQL-definitioner

Det er en misforståelse. Postgres "ændrer ikke formatet". Den originale SQL-streng er bare ikke gemt slet .

Forespørgslen analyseres og omskrives, og afhængigt af typen af ​​forespørgsel bliver der truffet handling. For eksempel , når du opretter visning , er resultaterne gemt i systemkataloger, for det meste pg_class og pg_rewrite .

Du skal også være opmærksom på, at alle identifikatorer løses ved oprettelse af et databaseobjekt ved at tage den nuværende search_path og synlighed i betragtning (tidlig binding). Den samme forespørgselsstreng kan betyde noget andet senere, hvis miljøet ændres på nogen måde.

Det, du ser senere, er en genudviklet version bygget ud fra disse poster. Der er nogle indbyggede funktioner at hjælpe med det, men det er i høj grad op til klienten, hvordan man formaterer omvendt SQL-kode.

Funktioner er en undtagelse (delvis). Funktionens brødtekst sendes som streng og gemmes som den er , nøjagtig som bestået, med (i øjeblikket) kun overfladisk syntakstest og validering af objekter. Hvis du vil have en hurtig måde at "gemme" en forespørgsel, inklusive dens format inde i Postgres, kan du f.eks. bruge en PL/pgSQL-funktion.

Den generelle tilgang er at have et uafhængigt kodelager som @Mike allerede foreslået - eller ikke at bekymre sig for meget om formatet.



  1. Konverter 'smalldatetime' til 'datetime' i SQL Server (T-SQL-eksempler)

  2. Eksporter til csv/excel måde at inkludere indledende nul

  3. hvordan man gemmer indisk sprog som telugu, hindi i mysql-databasen

  4. Hvordan MOD() virker i MariaDB