제약 조건을 변경하는 방법


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.