我有一些準備好的mysql查詢,我想轉換成Postgres sql。但問題是列名Postgres返回所有名稱爲小寫格式。我可以使用雙引號,但我有很多查詢,所以它非常昂貴。有沒有辦法以駝峯大小寫的方式獲取數據,而不是小寫。如何在camelcase中取得Postgres中的列別名而不是小寫,而不使用雙引號?
1
A
回答
1
就像@a_horse_with_no_name所說的,對於所有的實際目的來說,這是不可能的。我想你可能會下載源代碼,改變它的工作方式,你喜歡,並重新編譯和測試它。但我認爲這是一個非常糟糕的主意。
在數據庫方面,您有兩個明智的選擇。
- 用什麼都替換MySQL的反引號。
- 用雙引號替換MySQL的反引號。
說你從MySQL開始。
create table `Test` (
`TestId` integer primary key,
`TestName` varchar(35) not null
);
create or replace view `TestAll` as
select `TestId`, `TestName`
from `Test`;
將所有反引號替換爲空。在PostgreSQL中運行這個。
create table Test (
TestId integer primary key,
TestName varchar(35) not null
);
create or replace view TestAll as
select TestId, TestName
from Test;
PostgreSQL會將所有標識符都摺疊爲小寫。一切都會正常工作。 (除非也許你使用保留字,總是一個壞主意。)
第二種方法,用雙引號替換反引號。
create table "Test" (
"TestId" integer primary key,
"TestName" varchar(35) not null
);
create or replace view "TestAll" as
select "TestId", "TestName"
from "Test";
PostgreSQL爲分隔標識符保留大小寫。一切仍然有效。
您選擇的方式可能與您的應用程序代碼編寫方式有關。像Rails,Laravel和Django這樣的Web框架可以產生分隔的標識符。 (我認爲對於所有的Web框架來說都是如此;它是生成SQL的最安全的方式。)其他程序可能使用也可能不使用分隔標識符,並且它們可能或多或少地轉換麻煩。
如果您有文本格式的MySQL的轉儲文件,你可以替換使用這種sed
一個班輪雙引號反引號每次。
用這種方法替換每個反引號。
$ sed -i -e 's/`//g' mysql_dump.file
這樣,sed
將在原地修改文件,而不進行備份。使用man sed
獲取更多選項。
相關問題
- 1. 如何使urllib.urlencode使用雙引號而不是單引號?
- 2. 如何在運行時按列名取得值,而不是列索引號?
- 3. 如何使XML DOCTYPE具有單引號而不是雙引號
- 4. 使用列號而不是列名
- 5. 是否有理由使用單引號而不是Javascript中的雙引號?
- 6. 在Python中使用雙引號而不是單引號打印空字符串
- 7. 如何使用單引號而不是雙引號的C#控制檯參數?
- 8. DataTables - 使用列名而不是索引
- 9. PHP使preg_split爲逗號而不是在雙引號
- 10. 如何使button_to的html輸出具有單引號而不是雙引號?
- 11. Oracle列別名中的雙引號
- 12. 有些列使用雙引號和一些列在postgres中沒有雙引號
- 13. php PDO :: FETCH_CLASS映射到所有小寫屬性,而不是camelCase
- 14. Excel VLOOKUP - 如何使用列名而不是列號?
- 15. 在lm()中使用列號而不是名字
- 16. ASP.NET - 在GridViewRowEventArgs中使用列名而不是索引Row.Cells.Item
- 17. 如何識別大寫字母而不只是小寫
- 18. 在excel單元中放置1個雙引號而不是2個單引號
- 19. Dapper列號而不是列名?
- 20. 如何在Delphi中獲取上下文相關的He-lp以使用符號名稱而不是HelpID別名?
- 21. 如何在HTML中使用適當的撇號而不是「啞引號」?
- 22. 如何在我的網址中使用類別名稱而不是類別ID?
- 23. 如何打印specyfic字符串而不使用雙引號或單引號?
- 24. 使用列索引,而不是在GROUP_BY
- 25. 如何在ag中轉義單引號(不使用雙引號)
- 26. 取得std :: vector的總和是使用引用而不是值?
- 27. 如何在URL查詢中使用冒號而不是問號?
- 28. 如何使ucwords僅適用於單引號而不是撇號?
- 29. 雙引號不是R中
- 30. 爲什麼JSLint希望我使用雙引號而不是單引號?預計「',而是看到‘’」
這是不可能的,但你爲什麼在意? – 2015-02-09 07:00:05
我有很多現有的查詢。在每次選擇之後使用雙引號是一個大問題。 – 2015-02-09 09:55:50
但是爲什麼你在乎別名是'FooBar'還是'foobar'呢? – 2015-02-09 09:56:27