- 论坛徽章:
- 0
|
这段代码主要是测试生成10万条数据,数据库所花费的时间;但是单独执行 select now();这个语句不会报错;而在pgplsql存储过程里面会报错,哪位牛牛能够解释一下;
- create table staff( SN varchar(7) primary key
- , First_Name varchar(20)
- , Last_name varchar(15)
- , ID varchar (18) unique not null check (char_length(id)>14 and char_length(id)<19 )
- , gender char(1) check ( gender in ('F','M'))
- , married_state char(1) check ( married_state in ('Y','N','D','F'))
- );
- CREATE OR REPLACE FUNCTION TYDO() RETURNS void AS $$
- DECLARE
- f_name staff.First_name%TYPE;
- l_name staff.Last_name%TYPE;
- ssn staff.SN%TYPE;
- myid staff.id%TYPE;
- sex staff.gender%TYPE;
- ms staff.married_state%TYPE;
- BEGIN
- SELECT now(); -- 想知道开始时间;但是这个语句会报错
- FOR I IN 1 .. 9999999 LOOP
- f_name := rpad('Tony',7,I);
- l_name := rpad('Zhu',7,I);
- ssn := lpad(I,7,'0');
- myid := lpad(I,18,'0');
- if MOD(i,2)=0 then
- sex := 'F';
- ms := 'Y';
- else
- sex := 'M';
- ms := 'N';
- end if;
- INSERT INTO staff(SN,First_Name,Last_name,ID,gender,married_state)
- VALUES (ssn, f_name, l_name, myid, sex, ms);
- END LOOP;
- SELECT now(); -- 想知道结束时间;但是这个语句也会报错
- RETURN;
- END;
- $$ LANGUAGE plpgsql;
复制代码
[ 本帖最后由 horseman 于 2006-9-8 13:39 编辑 ] |
|