最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PostgreSQL數(shù)據(jù)庫中匿名塊的寫法實例

 更新時間:2021年01月07日 09:44:09   作者:msdnchina  
這篇文章主要介紹了PostgreSQL數(shù)據(jù)庫中匿名塊的寫法實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

看代碼吧~

test=# DO $$DECLARE i record;
test$# BEGIN
test$# FOR i IN 1..10
test$# LOOP 
test$# execute 'select loop_insert(1)';
test$# END LOOP;
test$# END$$;
DO
test=# 

看匿名塊的執(zhí)行效果:

test=# select count(*) from lineitem;
 count 
-------
 7000
(1 row) 
test=# select count(*) from lineitem;
 count 
-------
 17000 ------------->>>>匿名塊插入了10000條記錄.
(1 row) 
test=# 

補充:PostgreSql 的PL/pgSQL 塊結(jié)構(gòu) (在pgAdmin查詢工具中如何執(zhí)行語句塊)

PostgreSql 的PL/pgSQL 塊結(jié)構(gòu)

本文我們學習PL/pgSQL結(jié)構(gòu)塊,包括如何寫結(jié)構(gòu)塊和執(zhí)行結(jié)構(gòu)塊。

什么是結(jié)構(gòu)塊

PL/pgSQL是結(jié)構(gòu)塊語言,因此,PL/pgSQL函數(shù)或過程是通過結(jié)構(gòu)塊進行組織。完整結(jié)構(gòu)塊的語法如下:

[ <<label>> ]
[ DECLARE
 declarations ]
BEGIN
 statements;
 ...
END [ label ];

詳細說明如下:

塊有兩部分組成:聲明部分和主體部分。聲明部分是可選的,而主體部分是必須的。塊在end關(guān)鍵字后面使用分號(;)表示結(jié)束。

塊可以有個可選的標簽在開始和結(jié)尾處。如果你想在塊主體中使用exit語句或限定塊中聲明的變量名稱時,需要使用塊標簽。

主體部分是編寫代碼的地方,每條語句需要使用分號結(jié)束。

PL/pgSQL 塊結(jié)構(gòu)示例

下面示例描述一個簡單塊結(jié)構(gòu),一般稱為匿名塊:

DO $$
<<first_block>>
DECLARE
 counter integer := 0;
BEGIN
 counter := counter + 1;
 RAISE NOTICE 'The current value of counter is %', counter;
END first_block $$;

運行結(jié)果:

NOTICE: The current value of counter is 1 

從pgAdmin中執(zhí)行塊,點擊圖示按鈕:

注意DO語句不屬于塊結(jié)構(gòu)。它用于執(zhí)行匿名塊。PostgreSQL 在9.0版本中引入DO語句。

在聲明部分定義變量counter并設(shè)置為0.

在主體部分,是counter值加1,通過RAISE NOTICE語句輸出其值。

first_block 標簽僅為了演示需要,本例中沒有啥意義。

** 什么是雙 ($$) 符號?**

($$) 符號 是單引號(')的替代符號。開發(fā)PL/pgSQL 時,無論是函數(shù)或過程,必須把主體部分放在一個字符串中。因此必須對主體部分的單引號進行轉(zhuǎn)義表示:

DO
'<<first_block>>
DECLARE
 counter integer := 0;
BEGIN 
 
 counter := counter + 1;
 RAISE NOTICE ''The current value of counter is %'', counter; 
END first_block';

使用($$) 符號可以避免引號問題。也可以在$之間使用標識,如之間使用標識,如之間使用標識,如function$ , procedureprocedureprocedure.

PL/pgSQL 子結(jié)構(gòu)塊

PL/pgSQL可以一個塊在另一個塊的主體中。一個塊嵌入在另一個塊中稱為子塊,包含子塊的塊稱為外部塊。

子塊用于組織語句,這樣大塊能被分為更小和更多邏輯子塊。子塊的變量的名稱可以與外部塊變量名稱同名,雖然這在實踐中不建議。當在子塊中聲明一個與外部變量同名的變量,外部變量在子塊中被隱藏。如果需要訪問外部塊的變量,可以使用塊標簽作為變量的限定符,如下面示例:

DO $$ 
<<outer_block>>
DECLARE
 counter integer := 0;
BEGIN 
 counter := counter + 1;
 RAISE NOTICE 'The current value of counter is %', counter;
 
 DECLARE 
 counter integer := 0;
 BEGIN 
 counter := counter + 10;
 RAISE NOTICE 'The current value of counter in the subblock is %', counter;
 RAISE NOTICE 'The current value of counter in the outer block is %', outer_block.counter;
 END;
 
 RAISE NOTICE 'The current value of counter in the outer block is %', counter;

執(zhí)行結(jié)果如下:

NOTICE: The current value of counter is 1
NOTICE: The current value of counter in the subblock is 10
NOTICE: The current value of counter in the outer block is 1
NOTICE: The current value of counter in the outer block is 1

首先,在外部塊中聲明變量counter。

接著在子塊中也聲明了一個同名變量。

在進入子塊之前,變量的值為1。在子塊中,我們給變量counter值加10,然后打印出來。注意,這個改變僅影響子塊中counter變量。

然后,我們通過標簽限定符引用外部變量:outer_block.counter

最后,我們打印外部塊變量,其值保持不變。

總結(jié)

本文我們學習PL/pgSQL塊結(jié)構(gòu),通過DO語句可以執(zhí)行匿名塊。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • PostgreSQL教程(四):數(shù)據(jù)類型詳解

    PostgreSQL教程(四):數(shù)據(jù)類型詳解

    這篇文章主要介紹了PostgreSQL教程(四):數(shù)據(jù)類型詳解,本文講解了數(shù)值類型、字符類型、布爾類型、位串類型、數(shù)組、復合類型等數(shù)據(jù)類型,需要的朋友可以參考下
    2015-05-05
  • PostgreSQL時間處理的一些常用方式總結(jié)

    PostgreSQL時間處理的一些常用方式總結(jié)

    PostgreSQL提供了許多返回當前日期和時間的函數(shù),下面這篇文章主要給大家介紹了關(guān)于PostgreSQL時間處理的一些常用方式,文中通過圖文以及實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-03-03
  • PostgreSQL的日期時間差DATEDIFF實例詳解

    PostgreSQL的日期時間差DATEDIFF實例詳解

    PostgreSQL是一款簡介而又性能強大的數(shù)據(jù)庫應用程序,其在日期時間數(shù)據(jù)方面所支持的功能也都非常給力,下面這篇文章主要給大家介紹了關(guān)于PostgreSQL的日期時間差DATEDIFF的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • PostgreSQL中的XML操作函數(shù)代碼

    PostgreSQL中的XML操作函數(shù)代碼

    PostgreSQL中的XML操作函數(shù)代碼
    2009-09-09
  • PostgreSQL中實現(xiàn)自增的三種方式舉例

    PostgreSQL中實現(xiàn)自增的三種方式舉例

    很多小伙伴在把mysql數(shù)據(jù)庫里面的表導入pgsql數(shù)據(jù)庫的時候,會遇到新增數(shù)據(jù)的時候id不自增,這篇文章主要給大家介紹了關(guān)于PostgreSQL中實現(xiàn)自增的三種方式,需要的朋友可以參考下
    2024-02-02
  • Postgresql主從異步流復制方案的深入探究

    Postgresql主從異步流復制方案的深入探究

    這篇文章主要給大家介紹了關(guān)于Postgresql主從異步流復制方案的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Postgresql具有一起的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-10-10
  • postgresql 中的 like 查詢優(yōu)化方案

    postgresql 中的 like 查詢優(yōu)化方案

    這篇文章主要介紹了postgresql 中的 like 查詢優(yōu)化方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • PostgreSQL 使用raise函數(shù)打印字符串

    PostgreSQL 使用raise函數(shù)打印字符串

    這篇文章主要介紹了PostgreSQL 使用raise函數(shù)打印字符串,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • postgresql 實現(xiàn)修改jsonb字段中的某一個值

    postgresql 實現(xiàn)修改jsonb字段中的某一個值

    這篇文章主要介紹了postgresql 實現(xiàn)修改jsonb字段中的某一個值操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • PostgreSQL WAL日志膨脹的處理過程

    PostgreSQL WAL日志膨脹的處理過程

    PostgreSQL由于WAL日志的機制,導致其在不正確配置的情況下會出現(xiàn)磁盤空間暴漲的情況,本文檔就此情景寫一般處理辦法,感興趣的小伙伴跟著小編一起來看看吧
    2024-12-12

最新評論

柳河县| 琼海市| 阜宁县| 历史| 浦江县| 韶山市| 巴东县| 鲁甸县| 托里县| 新和县| 泾川县| 庆阳市| 加查县| 高雄市| 珠海市| 灵宝市| 盐城市| 唐海县| 镇安县| 安丘市| 安泽县| 腾冲县| 连城县| 塔河县| 尖扎县| 伊川县| 河北省| 泗水县| 曲阳县| 沾化县| 时尚| 华安县| 抚远县| 大冶市| 墨江| 沙洋县| 景泰县| 大冶市| 儋州市| 哈巴河县| 阆中市|