database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 8691 게시물 읽기
No. 8691
사용자 함수와 트리거... 어떻게 사용되는지..
작성자
잇힝(angelolgy)
작성일
2010-08-15 15:46
조회수
7,982

 

 안녕하세요

padmin3 원도우에 설치하여 사용하고 있습니다.

전문적인것이 아닌 그냥 학문용도로 사용을 할려고 하는데...

질문이 있습니다.

insert into std values(1 , SYSDATE);

SYSDATE에서 에러가 다더군요. CURRENT_TIME 으로 고치라는 글을 보아서 고쳐도 보았는데..

you will need to rewrite or cast the expression. 

왜 작동이 안되는건지...

테이블은 CREATE TABLE std

(

  std_id integer,

  std_date text

 

}

다음과 같습니다. text 는 다 받지 않는가요?

plpgsql을 사용하면 insert를 복사 붙여넣기 만번을 할 필요없이 한번에 작업이 가능하잖아요?

그래서

plpgsql를 사용하여

디비에 함수를 만들었습니다.

 

CREATE OR REPLACE FUNCTION mass_insert()

  RETURNS boolean AS

$BODY$ BEGIN

      FOR i IN 1..10000 LOOP

           insert into std values(i,SYSDATE);

      END LOOP;

    END;$BODY$

  LANGUAGE 'plpgsql' VOLATILE

  COST 100;

ALTER FUNCTION mass_insert() OWNER TO postgres;

 

함수에서 다음과 같이 만들었지만 execute  를 시행하면  

execute mass_insert

mass_insert  함수가 없다고 합니다.

 

 

트리거 함수를 만들어야하 하나요?

트리거 함수를 사용하지 않고 그냥 디비에다가 함수를 사용할려면 어떻게 해야되나요?

 

아무튼..

그래서 트리거 함수를 만들어보았습니다.

그런데 여기서 함수에서 만든 mass_insert함수를 어떻게 사용하는지 모르겠습니다.

트리거 함수를 만들려고하니.. 그냥 함수에서 만든 부분을 다시 만들어야했습니다.

업데이트 될 때 실행이 되더라구요..

실행은 되는데.. 제대로 안돌아가더라구요.. 뒤에서 mass_insert 함수가 제대로 구현이 안된것 같은데..

어떤 부분이 틀렸는가요?

 

$1 

다음 번에도 $1 다음번 $1 다음번 $1 다음번 $1 다음번 $1  계속 1만 떠요

 

어떻게하는것인지 가르쳐주세요 ㅠ..ㅠ

 

 

 

이 글에 대한 댓글이 총 1건 있습니다.

PostgreSQL에서는 묵시적 형변환이 그리 유연하지 않습니다.

저 경우라면,

std_date timestamp 형태로 지정하고,

insert 구문에서 current_timestamp 를 지정해야할 것 같습니다.

물론 date 형이라면, current_timestamp 예약어를 쓴 경우, timestamp에서 date형으로 변환을 하기는 합니다.

std_date text 를 쓰려면, insert 구문에서 current_* 예약어에 대한 자료현 변환을 꼭 지정해주어야합니다.

 

------

execute 명령은 prepared 쿼리에 대해서 그것을 호출하는 명령입니다.

 

select mass_insert();

 

이런형태로 호출해야할 것 같네요.

 

김상기(ioseph)님이 2010-08-16 14:52에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
8697pgsql 커넥션관련에러에 관해 질문드려요~~
goldenValue
2010-08-19
7426
8694폴더복사로 복구방법은...? [2]
궁금맨
2010-08-18
7461
8692Online Backup 관련하여 [1]
박병훈
2010-08-15
7969
8691사용자 함수와 트리거... 어떻게 사용되는지.. [1]
잇힝
2010-08-15
7982
8689createdb: could not connect to database postgres: FATAL: could not open file "global/pg_database": [1]
help
2010-07-30
8391
8688postgres삭제법 [1]
help
2010-07-30
12332
8686dblink 외에 DB단위 조인방법없나요? [2]
강철민
2010-07-23
8492
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.025초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다