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 7005 게시물 읽기
No. 7005
rule 로 다수의 seq 를 변경할 수 있나요?
작성자
송효진
작성일
2007-01-14 01:56
조회수
3,918

CREATE OR REPLACE RULE members_view_update AS ON UPDATE TO members_view DO INSTEAD (

    UPDATE members

        SET uid = new.uid, email = new.email, nick = new.nick, passwd = new.passwd, isadmin = new.isadmin

        WHERE uid = old.uid;

    UPDATE members_data

        SET uid = new.uid, name = new.name, personal_no = new.personal_no, tel = new.tel, cell = new.cell, addr = new.addr, addr_remain = new.addr_remain

        WHERE uid = old.uid;

    UPDATE members_permission

        SET uid = new.uid, permis_admin = new.permis_admin, permis_user = new.permis_user

        WHERE uid = old.uid;

);


이렇게 rule 을 만들었습니다.


update members_view set uid=1 where uid=2 하면

members 테이블만 적용됩니다.

뭐가 문제인지 모르겠지만 update 가 한번 일어나면서 old.uid 가 바뀌는듯 합니다.


rule 에서도 변수를 사용할 수 있나요?

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

CREATE OR REPLACE RULE members_view_delete AS ON DELETE TO members_view DO INSTEAD (

    DELETE FROM members WHERE (members.uid = old.uid);

    DELETE FROM members_data WHERE (members_data.uid = old.uid);

    DELETE FROM members_permission WHERE (members_permission.uid = old.uid);

);


이건 아예 동작을 안하네요.


DELETE FROM members_view WHERE uid=1

송효진님이 2007-01-14 02:06에 작성한 댓글입니다. Edit

update members set "uid=new.uid" 요 부분요.

members_data, members_permission 테이블이 외래키로 위 테이블을 참조하고 있다면 members 테이블의 uid값이 바뀌면 아래 테이블들의 값들이 바껴 버리죠..

uid 필드가 PK인듯 한데 uid=new.uid 라는 부분을 모두 제거해보세요

음.. 이상하네요 전 이거 되게 오래전부터 잘 써왔는데 -.-;


http://www.postgresql.or.kr/wiki.php/nonun/Documents/View%5Fand%5FRule

신기배(소타)님이 2007-01-14 13:52에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
7008php하고 연동이 안됩니다. [8]
권순용
2007-01-18
4498
7007multi column update [3]
사이베이스가 싫어
2007-01-17
4498
7006'\' 문자 저장 하는 방법점 알려주세요 [1]
정주호
2007-01-15
3918
7005rule 로 다수의 seq 를 변경할 수 있나요? [2]
송효진
2007-01-14
3918
7004저장프로시져에서 오류남. [3]
초보자
2007-01-12
4074
7003copy문쓰는데 에러가 [1]
김승일
2007-01-12
4005
7002PostgreSQL 8.2 윈도우에서 설치시 문제 [2]
이은주
2007-01-12
5622
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.028초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다