복합 키를 기본 키로 사용하는 테이블이 있습니다. "양방향"합성 키 만들기
CREATE TABLE FOO(
BAR1 INT,
BAR2 INT,
PRIMARY KEY (BAR1, BAR2))
는 BAR1 및 BAR2는 FK : 그것의 생성과 같은 다른 테이블들과 나는 둘 다 그 키가 동시에 존재하는 내 FOO 테이블에 0 또는 1 튜플 항상이 있는지 확인하고 싶습니다. Basicaly 나는처럼되고 동시에 그것을 좋아하는 것 : 키가 모두 그들 각각은 고유 할 수 있도록 다른 키와 시간의 임의의 수를 페어링 할 수 있어야합니다 동시에
PRIMARY KEY (BAR2, BAR1)
합니다. 내가
INSERT INTO FOO VALUES (1,2);
했을 때
그래서 스키마는
INSERT INTO FOO VALUES (2,1);
MySQL의에서이 문제를 해결하는 좋은 방법은 무엇입니까 허용 것인가?
또한 비슷한 확인을하는 UPDATE 트리거가 필요합니다. – sqlvogel
@sqlvogel, bar1 + bar2가 기본 키로 간주되므로 애플리케이션에서이 테이블을 업데이트하는지 여부는 OP에서 분명하지 않지만 여기에 동의합니다. 업데이트가 발생하면 업데이트 트리거가 필요할 것입니다. –
이것은 이론적 인 수준에서 합리적인 것처럼 보입니다. 제안 된 트리거를 만들려고하면 구문 오류가 발생합니다. @sqlvogel : 분명히하기 위해, 그렇습니다. appplication은이 테이블을 업데이트합니다. –