MySQL, 두 필드가 NULL 또는 NOT NULL이 되는 것을 방지할 수 있습니까?

MySQL, 두 필드가 NULL 또는 NOT NULL이 되는 것을 방지할 수 있습니까?

간단한 테이블:

ID, NAME, POST_ID, GROUP_ID

POST_ID 또는 GROUP_ID 중 하나를 설정해야 하지만 둘 다 설정하거나 둘 중 어느 것도 설정해서는 안 됩니다. 그래서,

유효한 경우가 있습니다:

ID, NAME, POST_ID, GROUP_ID
x,   y,   1,       NULL
x,   y,   NULL,    4

유효하지 않은 경우:

ID, NAME, POST_ID, GROUP_ID
x,   y,   NULL,    NULL
x,   y,   4,       4

이렇게 복잡한 제한 규칙을 설정할 수 있나요?

답변1

나는 그것이 가능하다고 생각하지 않습니다. 나는 사용자가 데이터를 입력하는 프런트엔드에서 그러한 경우를 포착할 것입니다. 또한 두 필드를 다른 두 필드로 바꿀 수도 있습니다.

가능한 값 'post' 또는 'group'이 있는 category유형의 필드 ID 가 포함된 필드입니다.enumreference

이렇게 하면 둘 다 비어 있지 않도록 쉽게 요구할 수 있으며 게시물 ID 또는 그룹 ID만 참조할 수 있습니다.

관련 정보