쉽게 오히려 단지보다는 부모 테이블에
id,hidden
필드를 고유 제한 조건을 추가하고 (
id,hidden
)에 FK를 가지고 귀하의 세부 테이블을 변경하여이 작업을 수행 할 수 있습니다
id
. 그러나이 경우 항상 부모 hidden
과 같기 때문에 hidden
특성을 세부 테이블에 저장해야하는 이유는 알 수 없습니다.
차라리 세부 테이블 [s]의 모든 필요한 행을 업데이트하는 마스터 테이블에 애프터 업데이트 트리거를 추가하고 싶습니다.
업데이트. 예.
1 방식
CREATE TABLE boxTable(id int not null auto_increment primary key,hidden
tinyint not null,
...
CONSTRAINT UQ_BOXTABLE(id,hidden));
CREATE TABLE childTable(...., boxId int not null, hidden tinyint not null,
CONSTRAINT FK_childTable_BoxTable FOREIGN KEY (boxId, hidden) REFERENCES
boxTable(boxId, hidden) ON DELETE CASCADE ON UPDATE CASCADE) ;
가 자동 childTable
에서 업데이트됩니다 boxTable 당신이 hidden
변경할 때마다.
두번째 방법 첫 번째는하지 않습니다,
CREATE TRIGGER AU_boxTable AFTER UPDATE ON boxTable
FOR EACH ROW
BEGIN
IF (new.hidden <> old.hidden) THEN
update childTable set hidden = new.hidden WHERE boxId = new.id;
END IF;
END;
두번째 방법은 당신이 boxTable
에 관계없이 값의 childTable에서 hidden
필드를 변경 할 수 있습니다 (퍼펙트 구문, 나는 순간에 MySQL의이 없습니다).
테이블에 이름을 지정했다면 더 쉽게 질문 할 수 있지만 ... '숨겨진'열의 값을 동기화 상태로 유지 하시겠습니까 ?? –
어떻게 설명해야할지 모르겠다.하지만 모든 항목이 아니라 숨겨진 상자의 모든 항목을 숨기고 싶다. 부모가 숨겨져있는 사람 만 – Zecrow
에, 업데이 트와 동일하지만 어떻게 숨겨진 필드와 동일하게? – Zecrow