從其他關聯式資料庫,換到 PostgreSQL 時,可能會有欄位名稱恰恰用到了保留字。
以下是列出表留字的方式,跟處理方式,作一個紀錄。
查找 Keyword 清單,可以用下列指令達成:
select * from pg_get_keywprds();
至於處理的方式,最好就是避免使用~
但是在舊資料庫移轉到 EDB 的企業版時,總會遇到部份用字在原先系統並非保留字,到了 PGSQL 卻列在保留字之內。也不便避開使用這些的時候,還可以用 as 明確標明這是欄位名稱,或可以用雙引號框住。見以下範例:
edb=# -- 不是保留字的狀況 edb=# select 'hello world' mydata; mydata ------------- hello world (1 row) edb=# -- 保留字的情形 edb=# select 'hello world' data; ERROR: syntax error at or near "data" LINE 1: select 'hello world' data; edb=# -- 排除1 edb=# select 'hello world' as data; data ------------- hello world (1 row) edb=# -- 排除2 edb=# select 'hello workd' "data"; data ------------- hello workd (1 row) edb=#
平常還是避免在程式碼中使用通常英文單字來當成變數名稱,應該就比較不會遇到這種問題了~~
參考資料
沒有留言:
張貼留言