, 나는 첫 번째 테이블의 해당 값 와 두 번째 테이블을 업데이트해야합니다.
database trigger의 완벽한 사용 예입니다. 변경 (삽입, 업데이트, 삭제)이 테이블에서 발생할 때 다양한 작업을 수행하는 데 사용할 수 있습니다. 당신이 당신의 (result, value)
테이블에 자바 계산의 값을 삽입하고 가정
당신이 서로 값으로 기록되는 값을 대체하는 트리거를 작성할 수 (의이 foo
를 호출하자, 다른 테이블 bar
입니다) 표. Postgres에 주어진 예제, 다른 db를 사용하는 경우 특정 RDBMS 매뉴얼을 참조하여 구문을보십시오.
CREATE FUNCTION get_value_from_lookup_table() RETURNS trigger AS $$
BEGIN
IF EXISTS (SELECT 1 FROM bar WHERE name = NEW.result) THEN
RETURN SELECT name, value FROM bar WHERE name = NEW.result;
END IF;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER lookup_value
INSTEAD OF INSERT ON foo
FOR EACH ROW
EXECUTE PROCEDURE get_value_from_lookup_table();
INSERT
이 foo
에서 수행 될 때마다 확인은 행이 bar
name=result
에 존재하는지 확인하기위한 것입니다. 그럴 경우 해당 행이 삽입되고, 그렇지 않으면 삽입이 정상적으로 진행됩니다. 그것이 그 기본 요지입니다. 실제 솔루션은 테이블 제약 조건, 삽입 및 업데이트 처리가 필요한지 여부 등에 따라 다릅니다.
기본적으로 이미 조회 테이블이 아닌가요? – Kayaman
조회 테이블에 두 개의 열만 있어야한다는 규칙입니까? 그리고 그들이 룩업 테이블이라면 어떻게 테이블을 업데이트 할 수 있습니까? 특정 코드가 있습니까? –
아니,별로 모르겠다. 비록 [엄격한 정의]에서 (https://en.wikipedia.org/wiki/Lookup_table)는 복잡한 값'y'을 조회하는 간단한 값'x'를 사용하는 것입니다. 보다 복잡한 매핑을 사용하면 룩업 테이블 대신'Map' 영역에 들어가기 시작합니다. – Kayaman