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 509 게시물 읽기
No. 509
Re: sequence option에 관한 질문
작성자
신현호
작성일
2000-02-01 08:57
조회수
11,748

'참고'라는 말이 맞겠지만 적당한 분류가 없어서...

위에 재익님이 말씀하신 것이 질문에는 맞겠지만 가만 생각해 보면

월이 지나는 것을 알아내는 부분이 있어야 합니다.

(설마, 따로 있는것은 아니겠지?)

어차피 달이 바뀌고 나서 추가된 항목이 있는지 없는지 알아내는

루틴이 필요하더군요.

해서...

저는 이렇게 해결했습니다.

트리거를 이용한 거죠.

 

밑의 함수는 insert가 발생할 때 작동하는 함수입니다.

21글자의 code에 첫글자는 '7'그리고 그 다음 8글자가 날자 마지막

5글자가 월계(?) 부분입니다.

이런식으로 만드니까 sequence는 필요 없더군요.

 

create function atom_7_insert() RETURNS OPAQUE as '

declare

dateLT date;

strLTdate text;

strLTlastCode text;

countLT int;

begin

dateLT := date(''now''::abstime);

strLTdate := date_part(''year'', dateLT) ||

lpad(date_part(''month'', dateLT), 2, ''0'') ||

lpad(date_part(''day'', dateLT), 2, ''0'');

select max(code)

into strLTlastCode

from atom_7

where code like ''7'' || substr(strLTdate,1,6) || ''%'';

 

if strLTlastCode ISNULL then

countLT := 1;

else

countLT := substr(strLTlastCode, 17, 5)::int + 1;

end if;

 

 

NEW.code := ''7'' || strLTdate ||

''00'' || lpad(NEW.Company, 5, ''0'') ||

lpad(countLT, 5, ''0'');

NEW.c_member := getpgusername();

 

return NEW;

end;

' Language 'plpgsql';

 

요즘 끄적이고 있는 것에 있는것을 통째로 옮겨 온거라 좀 산만합니다만...(완성한 것도 아니고...)

혹시라도 참고가 되셨기를...

 

인천의 나사 풀린 산호...

[Top]
No.
제목
작성자
작성일
조회
514cc -o sample1 sample1.c 에러 ..
최진백
2000-02-03
10477
516┕>Re: cc -o sample1 sample1.c 에러 ..
정재익
2000-02-03 23:01:00
11358
529 ┕>Re: Re: cc -o sample1 sample1.c 에러 ..
최진백
2000-02-08 14:11:01
12120
530  ┕>죄송 ( lpg -> lpq )
최진백
2000-02-08 14:16:55
12168
512postgresql 설치하려다가....
hyungoo
2000-02-02
10698
513┕>Re: postgresql 설치하려다가....
정재익
2000-02-02 23:17:43
11588
510디비를 옮기려고 하는데요.
최동욱
2000-02-01
10840
511┕>Re: 디비를 옮기려고 하는데요.
정재익
2000-02-01 14:46:17
11418
507sequence option에 관한 질문
박현민
2000-01-31
10820
508┕>Re: sequence option에 관한 질문
정재익
2000-01-31 22:07:05
11998
509┕>Re: sequence option에 관한 질문
신현호
2000-02-01 08:57:23
11748
501갈켜주세요
이수범
2000-01-31
10319
505┕>Re: 갈켜주세요
정재익
2000-01-31 14:31:42
11320
500flex 설치중 make error 를 보셨나요?
이현주
2000-01-31
10740
506┕>Re: flex 설치중 make error 를 보셨나요?
정재익
2000-01-31 14:33:06
11805
499CGI 프로그램에서 Postgresql 연결 방법 좀
최덕기
2000-01-31
10555
504┕>Re: CGI 프로그램에서 Postgresql 연결 방법 좀
정재익
2000-01-31 14:16:20
11326
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.050초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다