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 4739 게시물 읽기
No. 4739
트리거에서 널값 체크에 따른 업데이트
작성자
초보입니다.
작성일
2003-06-01 23:06
조회수
2,034

sale 테이블에서 고객 테이블을 업데이트, 인서트 트리거로 업데이트 할려구 합니다.

그런데 널값일때는 이미지를 업데이트 안하고자 하는데도

자꾸 업데이트가 되네요. ㅠㅠ''

구해주세효'

 

SELECT cst_id, stf_anm, sal_sati, sal_img as sal_img INTO cstid, staffanm, salsati, cstimage FROM ts_sale WHERE shp_id = NEW.shp_id AND sal_id = NEW.sal_id;

 

 

IF length(trim(cstimage)) = 0

THEN

UPDATE tu_cust SET cst_sati = salsati, stf_anm = staffanm, grd_nm = grade WHERE shp_id = NEW.shp_id AND cst_id = cstid;

ELSE

UPDATE tu_cust SET cst_sati = salsati, stf_anm = staffanm, grd_nm = grade, cst_image = cstimage WHERE shp_id = NEW.shp_id AND cst_id = cstid;

END IF;

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

초보들이 흔히 범하는 실수가 null과 '' (빈문자열)을 구분이 엄격하다는 사실을 잊어버립니다.

 

str1 := null

str2 := ''

 

str1 <> str2

 

입니다.

 

length(null) 함수의 리턴값은 null이지 0이 아닙니다.

coalesce(null,0) 형태의 함수가 하나더 있어야할 것같네요.

 

IF coalesce(length(trim(cstimage)),0) = 0

이런식의.

김상기(ioseph)님이 2003-06-02 12:12에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
4742정적 쿼리에 대해서. [2]
초본데염
2003-06-02
1663
4741PostgreSQL 와 JDBC 연결 상의 또다른 질문 하나 [1]
최종일
2003-06-02
4707
4740large object 사용 하는것에 대해.. [3]
장나영
2003-06-01
1371
4739트리거에서 널값 체크에 따른 업데이트 [1]
초보입니다.
2003-06-01
2034
4736락에 대해서.. [2]
초본데염
2003-05-31
1909
4735Servlet 과 PostgreSQL 연결문제 (JDBC) [1]
최종일
2003-05-30
2321
4733인덱스에 대한 몇가지 질문 [1]
Operator
2003-05-30
1948
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.020초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다