1
SELECT 문의 WHERE 절에있는 단어를 규칙 (CREATE RULE myrule AS ON SELECT TO mytable
...)으로 바꿀 수 있습니까? WHERE 절의 단어를 대체하는 Postgres 규칙
SELECT col1, col2
FROM mytable
WHERE col2 = 1;
는
SELECT col1, col2
FROM mytable
WHERE col3 = 1;
초기 문이 대체를 허용하지 않는 클라이언트에 의해 발행 될 것이다. 따라서 대체는 데이터베이스 측에서 수행되어야합니다.
** 편집 **
내가 충분히 특정되지 않았을 수 있습니다. 이 종류의 select 문 패턴에 대해 열 이름 대체가 필요합니다. WHERE 절은 계속 변경됩니다. 규칙 자체에서 현재 SELECT 문을 참조 할 수 있습니까?
이 내가 필요로 무엇을 최소한으로 세분화 :
- 현재 SELECT 문을 "WHERE COL2"와 "WHERE COL3"
- 는 것을
세 개의 매개 변수 (리터럴이 아닌)를 모두 전달한 다음이를 처리하여 빈 매개 변수를 얻으면 사실이 될 수 있습니다. 예를 들어'where (col1 =? 또는? null) 및 (col2 =? 또는?가 null)' – Hambone
아니요, 불가능합니다. 규칙을 설정할 수 있으면 쿼리는'col1, col2' 대신'col1, col3'을 반환합니다. – klin
왜 WHERE 절의 테이블 이름 만 바뀌 었는지 확인하기 위해 예제에서의 대체에 WHERE가 포함되어 있습니다. – andehhh