DECLARE

中文man手册

DECLARE

NAME
SYNOPSIS
DESCRIPTION æè¿°
PARAMETERS åæ°
NOTES 注æ
EXAMPLES ä¾å
COMPATIBILITY å¼å®¹æ§
è¯è
è·

NAME

DECLARE - å®ä¹ä¸ä¸ªæ¸¸æ

SYNOPSIS

DECLARE name [ BINARY ] [ INSENSITIVE ] [ [ NO ] SCROLL ]
CURSOR [ { WITH | WITHOUT } HOLD ] FOR query
[ FOR { READ ONLY | UPDATE [ OF column [, ...] ] } ]

DESCRIPTION æè¿°

DECLARE åè®¸ç¨æ·å建游æ ï¼ ç¨äºå¨ä¸ä¸ªå¤§çæ¥è¯¢é颿£ç´¢å°æ°å è¡æ°æ®ã ä½¿ç¨ FETCH [fetch(7)]ï¼æ¸¸æ å¯ä»¥æ¢å¯ä»¥è¿åææ¬ä¹å¯ä»¥è¿åäºè¿å¶æ ¼å¼ã

é常游æ è¿åææ¬æ ¼å¼ï¼å SELECT çæçæ¯ä¸æ ·çã å ä¸ºæ°æ®å¨ç³»ç»å鍿¯ç¨äºè¿å¶æ ¼å¼åå¨çï¼ ç³»ç»å¿é¡»å¯¹æ°æ®åä¸å®è½¬æ¢ä»¥çæææ¬æ ¼å¼ã 䏿¦æ°æ®æ¯ä»¥ææ¬å½¢å¼è¿åï¼é£ä¹å®¢æ·ç«¯åºç¨éè¦æå®ä»¬è½¬æ¢æäºè¿å¶è¿è¡æä½ã å¦å¤ï¼ææ¬æ ¼å¼ä¸è¬é½æ¯å¯¹åºçäºè¿å¶æ ¼å¼å çåå¨ç©ºé´å¤§ã äºè¿å¶æ¸¸æç»ä½è¿ååé¨äºè¿å¶å½¢æçæ°æ®ãå½ç¶ï¼å¦æä½æ³ä»¥ææ¬æ¹å¼æ¾ç¤ºæ°æ®ï¼é£ä¹ä»¥ææ¬æ¹å¼æ£ç´¢ä¼ä¸ºä½è约å¾å¤å®¢æ·ç«¯çå·¥ä½ã

æ¯å¦ï¼å¦ææ¥è¯¢ä»ä¸ä¸ªæ´æ°åè¿åä¸ä¸ªä¸ï¼ å¨ç¼ºççæ¸¸æ éä½ å°è·å¾ä¸ä¸ªå- 符串 1ï¼è妿æ¯ä¸ä¸ªäºè¿å¶æ¸¸æ ï¼ ä½ å°å¾å°ä¸ä¸ª 4-å- èçåå«è¯¥æ°å¼åé¨å½¢å¼çæ°å¼ï¼å¤§ç«¯åºï¼ã

游æ åºè¯¥å°å¿ä½¿ç¨äºè¿å¶æ¸¸æ ãä¸äºç¨æ·åºç¨å¦ psql æ¯ä¸è¯å«äºè¿å¶æ¸¸æ çï¼ è䏿æè¿åçæ°æ®æ¯ææ¬æ ¼å¼ã

Note: 注æ: 妿客æ·ç«¯åºç¨ä½¿ç¨"æ©å±æ¥è¯¢"åè®®ååº FETCH å½ä»¤ï¼ é£ä¹ Bind åè®®å£°ææ°æ®æ¯ç¨ææ¬è¿æ¯ç¨äºè¿å¶æ ¼å¼æ£ç´¢ã è¿ä¸ªéæ©è¦ç游æ çå®ä¹ãå æ- ¤ï¼å¨ä½¿ç¨æ©å±æ¥è¯¢åè®®çæ¶åï¼äºè¿å¶æ¸¸æ çæ¦å¿µå·²ç»è¿æ¶äº ï¼ ä»»ä½æ¸¸æ é½å¯ä»¥å½ä½ææ¬æèäºè¿å¶çæ ¼å¼ååºã

PARAMETERS åæ°

name

å°å¨éåFETCHæä½ä¸ä½¿ç¨ç游æ åã

BINARY

令游æ ä»¥äºè¿å¶è䏿¯ææ¬æ ¼å¼è·åæ°æ®ã

INSENSITIVE

表æä»æ¸¸æ æ£ç´¢åºæ¥çæ°æ®ä¸åºè¯¥è¢«å¶ä»è¿ç¨ææ¸¸æ çæ´æ°å¨ä½å½±åã å¨ PostgreSQL éï¼æææ¸¸æ é½æ¯ä¸ææçï¼è¿ä¸ªå³é®å- 没æä»ä¹ä½ç¨ï¼æä¾å®åªæ¯ä¸ºäºå SQL æ åå¼å®¹ã

SCROLL

NO SCROLL

SCROLL 声æè¯¥æ¸¸æå¯ä»¥ç¨äºä»¥é顺åºçæ¹å¼æ£ç´¢æ°æ®è¡ï¼ä¹å°±æ¯ååæ£ç´¢ï¼ã æ ¹æ®æ¥è¯¢çæ§è¡è®¡åçä¸åï¼å£°æ SCROLL å¯è½ä¼å¯¹æ¥è¯¢çæ§è¡æ¶é´éå ä¸å®çå½±åã NO SCROLL 声æè¯¥æ¸¸æ ä¸è½ç¨äºä»¥é顺åºçæ¹å¼æ£ç´¢æ°æ®è¡ï¼ä¹å°±æ¯ååæ£ç´¢ï¼ã

WITH HOLD
WITHOUT HOLD

WITH HOLD 声æè¯¥æ¸¸æ å¯ä»¥å¨å建å®çäºå¡æåæäº¤åç»§ç»ä½¿ç¨ã WITHOUT HOLD 声æè¯¥æ¸¸æ ä¸è½å¨å建å®ççäºå¡æäº¤å使ç¨ãå¦ææ¢æ²¡æå£°æ WITHOUT HOLDï¼ä¹æ²¡æå£°æ WITH HOLDï¼ é£ä¹ç¼ºçæ¯ WITH HOLDã

query

ä¸ä¸ªSELECTæ¥è¯¢ï¼å®æä¾ç±æ¸¸æ è¿åçè¡ã 请åè SELECT è¯- å¥è·åæå³æææ¥è¯¢ç详ç»ä¿¡æ¯ã

FOR READ ONLY
FOR UPDATE

FOR READ ONLY è¡¨ææ¸¸æ å°ç¨äºåªè¯»æ¨¡å¼ã FOR UPDATE è¡¨ææ¸¸æ å°è¢«ç¨äºæ´æ°è¡¨ã å ä¸ºç®å PostgreSQL 䏿¯ææ¸¸æ æ´æ°ï¼ æä»¥å£°æ FOR UPDATE å°äº§çä¸ä¸ªé误信æ¯ãè声æ FOR READ ONLY 没æä½ç¨ã

column

å°è¢«æ´æ°çåãå ä¸ºæ¸¸æ æ´æ°ç®åä¸è¢« PostgreSQL æ¯æï¼ æä»¥ FOR UPDATE åå¥å°äº§çä¸ä¸ªé误信æ¯ã

BINARYï¼INSENSITIVEï¼SCROLL å³é®åå¯ä»¥ä»¥ä»»ä½é¡ºåºåºç°ã

NOTES 注æ

å¦ææ²¡æå£°æ WITH HOLDï¼é£ä¹è¿ä¸ªå½ä»¤åå»ºçæ¸¸æ åªè½å¨å½åäºå¡ä¸ä½¿ç¨ã Thus, DECLARE without WITH HOLD is useless outside a transaction block: the cursor would survive only to the completion of the statement. Therefore PostgreSQL reports an error if this command is used outside a transaction block. ä½¿ç¨ BEGIN [begin(7)], COMMIT [commit(7)] å ROLLBACK [rollback(7)] å®ä¹ä¸ä¸ªäºå¡åã

妿声æäº WITH HOLDï¼å¹¶ä¸å建该游æ çäºå¡æåæäº¤ï¼ é£ä¹æ¸¸æè¿å¯ä»¥å¨åä¸ä¼è¯éåçäºå¡é访é®ãï¼ä½å¦æå建å®çäºå¡åæ»ï¼é£ä¹æ¸¸æè¢«åé¤ãï¼ å¸¦ç WITH HOLD åå»ºçæ¸¸æ æ¯ç¨ä¸ä¸ªæç¡®ç CLOSE å½ä»¤ï¼æèæ¯ä¼è¯ç»æ¢æ¥å³é- çã å¨ç®åçå®ç°éï¼ç±ä¸ä¸ªæ¸¸æ ä»£è¡¨çè¡æ¯è¢«æ·è´å°ä¸ä¸ªä¸´æ¶æä»¶æèåå- åºéçï¼è¿æ ·ä»ä»¬å°±ä»ç¶å¯ä»¥å¨éåçäºå¡ä¸è¢«è®¿é®ã

å¨å®ä¹ä¸ä¸ªè¦ç¨æ¥ååæåçæ¸¸æ çæ¶åï¼æä»¬åºè¯¥å£°æ SCROLL é项ã è¿ä¸ªæ¯ SQL æ åè¦æ±çãä¸è¿ï¼ä¸ºäºåæ©æççæ¬å¼å®¹ï¼ PostgreSQL 卿²¡æ SCROLL çæ¶åä¹å许ååæåï¼ åªè¦æ¸¸æ çæ¥è¯¢è®¡åç®åå¾ä¸éè¦é¢å¤çå¼éå°±å¯ä»¥æ¯æå®ã ä¸è¿ï¼æä»¬å»ºè®®åºç¨å¼å人åä¸è¦ä¾èµäºä½¿ç¨æ²¡æå¸¦ç SCROLL å®ä¹ç游æ çå忥æ¾åè½ã妿声æäº NO SCROLLï¼é£ä¹ä¸ç®¡ææ ·é½ä¼ç¦æ- ¢ååæåçåè½ã

å¨ SQL æ å䏿¸¸æ åªè½å¨åµå¥ SQL ï¼ESQLï¼ çåºç¨ä¸ä½¿ç¨ã PostgreSQL æå¡å¨æ²¡æä¸ä¸ªæç¡®ç OPEN è¯- å¥ï¼ä¸ä¸ªæ¸¸æ è¢«è®¤ä¸ºå¨å®ä¹æ¶å°±å·²ç»æå¼äºã ä¸è¿ï¼PostgreSQLåµå¥ç SQL é¢ç¼è¯å¨ï¼ ecpgï¼ æ¯æ SQL92 ä¹ æ¯ï¼åæ¬é£äºåDECLAREåOPENç¸å³çè¯å¥ã

EXAMPLES ä¾å

å®ä¹ä¸ä¸ªæ¸¸æ ï¼

DECLARE liahona CURSOR FOR SELECT * FROM films;

åé FETCH [fetch(7)] è·åæå³ 游æ ä½¿ç¨çæ´å¤ä¾åã

COMPATIBILITY å¼å®¹æ§

SQL æ ååªå许å¨åµå¥ç SQL ä¸å模åä¸ä½¿ç¨æ¸¸æ ã PostgreSQL å许交äºå°ä½¿ç¨æ¸¸æ ã

SQL æ ååè®¸æ¸¸æ æ´æ°è¡¨æ°æ®ã ææ PostgreSQL çæ¸¸æ é½æ¯åªè¯»çã

äºè¿å¶æ¸¸æ æ¯ PostgreSQL æ©å±ã

è¯è

Postgresql 䏿ç½ç« ä½ä¼å¹³ <laser@pgsqldb.org>

è·

æ¬é¡µé¢ä¸æçç±ä¸æ man æå页计åæä¾ã
䏿 man æå页计åï¼https://github.com/man-pages-zh/manpages-zh