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

Чувствителност на регистъра на Postgres

В PostgreSQL имената без кавички не са чувствителни към главни букви. Така SELECT * FROM hello и SELECT * FROM HELLO са еквивалентни.

Въпреки това, цитираните имена са чувствителни към главни букви. SELECT * FROM "hello" е не еквивалентно на SELECT * FROM "HELLO" .

За да се направи "мост" между имената в кавички и имената без кавички, имената без кавички са имплицитно с малки букви, по този начин hello , HELLO и HeLLo са еквивалентни на "hello" , но не и към "HELLO" или "HeLLo" (ОП!).

По този начин, при създаване обекти (таблици, изгледи, процедури и т.н.) в PostgreSQL, трябва да ги посочите или без кавички, или в кавички, но с малки букви.

За да конвертирате съществуващи таблици/изгледи/и т.н., можете да използвате нещо като ALTER TABLE "FOO" RENAME TO "foo" .

Или опитайте да модифицирате dump от MSSQL, за да го направите "PostgreSQL-съвместим" (така че да съдържа foo s или "foo" s, но не и "FOO" s).

  • Или чрез изрично редактиране на дъмп файл. (Ако използвате Linux, можете да направите sed -r 's/"[^"]+"/\L\0/g' dumpfile — обаче имайте предвид, че тази команда може също да промени текста в низови литерали.)
  • Или като посочите някои опции при получаване на дъмп от MSSQL. (Не съм сигурен дали има такива опции в MSSQL, никога не съм го използвал, но вероятно такива опции трябва да съществуват.)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да стартирате SQL Server 2017 и 2019 едновременно на Mac

  2. T-sql - определя дали стойността е цяло число

  3. Как да намеря текущото ниво на транзакция?

  4. Как да намеря дубликати в множество колони?

  5. Как да зададете bool стойност в SQL