PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да попреча на PostgreSQL да променя моите добре форматирани SQL дефиниции

Това е недоразумение. Postgres не "променя формата". Оригиналният SQL низ просто не се съхранява въобще .

Заявката се анализира и пренаписва и в зависимост от вида на заявката се предприемат действия. Например , когато създавате изглед , резултатите се съхраняват в системни каталози, най-вече pg_class и pg_rewrite .

Също така трябва да сте наясно, че всички идентификатори се разрешават по време на създаване на обект на база данни, като се взема текущият search_path и предвид видимостта (ранно обвързване). Същият низ на заявка може да означава нещо различно по-късно, ако средата се промени по някакъв начин.

Това, което виждате по-късно, е преработено версия, създадена от тези записи. Има някои вградени функции да помогне с това, но до голяма степен зависи от клиента как да форматира SQL код с обратно проектиране.

Функции са изключение (частично). Тялото на функцията се предава като низ и се запазва както е , точно както е преминато, с (в момента) само повърхностно тестване на синтаксиса и валидиране на обекти. Ако искате бърз начин да "запазите" заявка, включително нейния формат в Postgres, можете да използвате функция PL/pgSQL, например.

Общият подход е да имате независимо хранилище на кодове като @Mike вече предложи - или да не се интересувате твърде много от формата.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Разделяне на стойност на колона на две колони в SELECT?

  2. Rails бази данни, защо да използвате една и съща СУБД за разработка и производство?

  3. Направете emacs да подчертава синтаксиса на postgresql по подразбиране

  4. Как мога да получа редовете INSERTED и UPDATED за операция UPSERT в postgres

  5. Ляво външно съединение, действащо като вътрешно съединение