제약 조건을 변경하는 방법


91

SQL 제약 조건 변경 방법

아래는 내 제약 중 하나입니다.

CONSTRAINT ACTIVEPROG_FKEY1 FOREIGN KEY(ActiveProgCode) REFERENCES PROGRAM(ActiveProgCode),

추가하고 싶습니다

ON DELETE CASCADE

위의 제약에.

기존 제약 조건 ACTIVEPROG_FKEY1을 변경하고 추가하는 방법

ON DELETE CASCADE

제약 조건 ACTIVEPROG_FKEY1

ACTIVEPROG_FKEY1이 ACTIVEPROG 테이블에 있다고 가정합니다.

답변:


146

제약 조건을 변경할 수는 없지만 삭제 한 다음 다시 만들 수 있습니다.

이것 좀 봐

ALTER TABLE your_table DROP CONSTRAINT ACTIVEPROG_FKEY1;

다음과 ON DELETE CASCADE같이 다시 만듭니다.

ALTER TABLE your_table
add CONSTRAINT ACTIVEPROG_FKEY1 FOREIGN KEY(ActiveProgCode) REFERENCES PROGRAM(ActiveProgCode)
    ON DELETE CASCADE;

이 도움을 바랍니다


제약을 활성화 / 비활성화 할 수 있습니다.
Florin Ghita 2011

1
@FlorinGhita, 예, 활성화 / 비활성화 할 수 있습니다. ... 때로는 테이블에서 하나 이상의 제약 조건을 비활성화하고 중요한 작업을 수행 한 다음 상수를 다시 활성화하는 것이 유용합니다. ) 완료 후. 이는 대량로드 작업 중에 성능을 향상시키기 위해 가장 자주 수행됩니다.
andy

12

아니요. 제약 조건을 변경할 수는 없습니다. 우리가 할 수있는 것은 삭제하고 다시 만드는 것뿐입니다.

ALTER TABLE [TABLENAME] DROP CONSTRAINT [CONSTRAINTNAME]

외래 키 제약

Alter Table Table1 Add Constraint [CONSTRAINTNAME] Foreign Key (Column) References Table2 (Column) On Update Cascade On Delete Cascade

기본 키 제약

Alter Table Table add constraint [Primary Key] Primary key(Column1,Column2,.....)

6
OP가 원하는 것이 불가능하다는 것은 사실이지만 Oracle 태그가 붙은 질문에 대해 SQL Server 사이트에 대한 링크를 게시하는 이유는 무엇입니까?
Frank Schmitt 2011
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.