溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

postgresql 中大寫的問題

發(fā)布時(shí)間:2020-07-31 21:43:32 來源:網(wǎng)絡(luò) 閱讀:1048 作者:rujingjv 欄目:數(shù)據(jù)庫(kù)

    今天遇到一個(gè)奇怪的問題(其實(shí)是非?;A(chǔ)的問題),記錄一下

 

問題描述:

    一個(gè)sequence,名字為:SV_INFO_SEQ_id 在PGAdmin中看存在,查詢information_schema.sequences視圖也存在,名字也完全一樣,但是在重置時(shí)總提示relation does not exists,重置語句是

select setval('SV_INFO_SEQ_id',1)

 

排錯(cuò)過程:

    困惑了好久無果,執(zhí)行 select nextval('SV_INFO_SEQ_id')也是一樣的提示關(guān)系不存在。查看建立時(shí)SQL才發(fā)現(xiàn)問題,建立時(shí)使用的是CREATE SEQUENCE "SV_INFO_SEQ_id"……

    突然才想到PG是大小寫敏感的,默認(rèn)情況下會(huì)把對(duì)象名全部轉(zhuǎn)成小寫形式存于數(shù)據(jù)庫(kù)中。如果要保持大寫,或大小寫混寫,則必須將對(duì)象稱用雙引號(hào)引起來,使用時(shí)也必須用雙引號(hào)。再次執(zhí)行

   select setval('“SV_INFO_SEQ_id”',1) 得到正確的結(jié)果。

 

舉個(gè)例子:

create sequence "TEST_SEQ"  INCREMENT 1 start 1 minvalue 1 maxvalue 10;

執(zhí)行后,在數(shù)據(jù)庫(kù)中存儲(chǔ)的是就是大寫的名稱,使用時(shí)也名稱也必須用雙引號(hào)引起來,比如

SELECT NEXTVAL("TEST_SEQ")

 

最后結(jié)論:

    數(shù)據(jù)庫(kù)對(duì)象盡量全部使用小寫名稱,不要大寫也不要大小混排,開發(fā)時(shí)做好開發(fā)規(guī)范,必免出現(xiàn)問題。

 

 

 

  

 

 

 

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI