Control Structures of PL/SQL Control structures are probably the most useful (and important) part of PL/pgSQL.With PL/pgSQL's control structures, you can manipulate PostgreSQL data in a very flexible and powerful way. 1.Returning From a Function RETU…
1 PL/pgSQL Under the Hood This part discusses some implementation details that are frequently important for PL/pgSQL users to know. 1.1 Variable Substitution SQL statements and expressions within a PL/pgSQL function can refer to variables and paramet…
Trigger Procedures PL/pgSQL can be used to define trigger procedures on data changes or database events. A trigger procedure is created with the CREATE FUNCTION command, declaring it as a function with no arguments and a return type of trigger (for d…
Cursors Rather than executing a whole query at once, it is possible to set up a cursor that encapsulates the query, and then read the query result a few rows at a time. A more interesting usage is to return a reference to a cursor that a function has…
1.Structure of PL/pgSQL The structure of PL/pgSQL is like below: [ <<label>> ] [ DECLARE declarations ] BEGIN statements END [ label ]; A label is only needed if you want to identify the block for use in an EXIT statement, or to qualify the na…
Errors and Messages 1. Reporting Errors and Messages Use the RAISE statement to report messages and raise errors. RAISE [ level ] 'format' [, expression [, ... ]] [ USING option = expression [, ... ] ]; RAISE [ level ] condition_name [ USING option =…
1._rowid 类似Oracle的rowid mysql> ; +-------+----+----------------+-------------+---------------+------------+ | rowid | ID | Name | CountryCode | District | Population | +-------+----+----------------+-------------+---------------+------------+ | | | K…
1.MySQL的历史,一些相关概念. 2.MySQL数据类型 *通常一个页内可以存放尽可能多的行,那么数据库的性能就越好,选择一个正确的数据类型至关重要. 1>UNSIGNED类型: 将数字类型无符号化. 2>ZEROFILL: 可以格式化整形显示,一旦启用该属性,MySQL数据库为列自动添加UNSIGNED属性.0填充. 3>日期和时间类型 日期数据类型占用空间的情况 类型 起始范围 结束范围 DATETIME 1000-01-01 00:00:00 9999-12-31 23:59:…
IF条件 declare cursor s is            select version from city_server t;   s_ city_server.version%type; begin   open s;   fetch s into s_;         if s_>2            then         DBMS_OUTPUT.put_line(s_);         end if;   close s; end; LOOP循环 declare …
资料1 -- Created on 2014/8/20  declare    -- Local variables here   i integer; begin   i := 12;   -- Test statements here   DBMS_OUTPUT.put_line(i); end; 资料2 declare    cursor s is            select * from city_app.city_server;   s_ s%rowtype; begin  …