source

테이블에 ON DELETE 제약 조건을 추가하려면 어떻게 해야 합니까?

manysource 2023. 10. 7. 12:01

테이블에 ON DELETE 제약 조건을 추가하려면 어떻게 해야 합니까?

테이블에 ON DELETE 제약 조건을 추가하려면 어떻게 해야 합니까?

ALTER TABLE+ADD CONSTRETT를 사용합니다. 예를 들어 테이블 멤버와 프로파일을 member_id로 연결하고 멤버가 삭제될 때마다 프로파일을 캐스케이드로 삭제하려면 다음과 같이 작성할 수 있습니다.

ALTER TABLE profiles
   ADD CONSTRAINT `fk_test`
   FOREIGN KEY (`member_id` )
   REFERENCES `members` (`member_id` )
   ON DELETE CASCADE

제약 조건을 업데이트해야 할 경우 해당 제약 조건을 제거한 후 다시 만들어야 하므로 변경할 직접적인 방법은 없습니다.

ALTER TABLE profiles DROP FOREIGN KEY `fk_test`

외국 키가 이미 생성되어 있다면, 저에게 효과가 있었던 트릭이 있습니다.데이터베이스 덤프를 수정한 후 수정한 내용과 함께 다시 가져올 수 있습니다.

Mysql과 Linux shell을 사용하는 경우 다음과 같습니다.

먼저 데이터베이스 내보내기:

$ mysql -u <user> -p <namedatabase> > database.sql

그런 다음 데이터베이스를 엽니다.sql file 및 변경할 테이블을 찾습니다.

더하다ON DELETE CASCADE외국어 키 문장 끝에 저장합니다.

둘째, 수정사항이 포함된 데이터베이스를 가져옵니다.

$ mysql -u <user> -p <namedatabase> < database.sql

그러면 ON DELETE CASCADE가 작동하게 됩니다.

언급URL : https://stackoverflow.com/questions/4688599/how-can-i-add-on-delete-constraint-on-the-table