itsource

MariaDB 10.0은 덤프 삽입 시 외부 키 이름을 바꿉니다.

mycopycode 2023. 10. 9. 22:35
반응형

MariaDB 10.0은 덤프 삽입 시 외부 키 이름을 바꿉니다.

상태: MariaDb 10.0으로 정확한 두 개의 데이터베이스 설정

하나는 꽉 찼고 다른 하나는 비어있고 덤프가 삽입되기를 기다리고 있습니다.

표에 외래 키 제약 조건이 있습니다.

ALTER TABLE `rel_account_account` ADD CONSTRAINT `FK_Account` FOREIGN KEY (`InAccountID`) REFERENCES `t_account` (`ID`) ON DELETE RESTRICT ON UPDATE CASCADE;

데이터베이스를 덤프할 경우

mysqldump -uroot -p --default-character-set=utf8 livedb -r live.sql

다른 시스템에서 복구하는 방법으로

mysql -uroot -p --default-character-set=utf8 livedb
mysql> SOURCE live.sql

그런 다음 외부 키의 이름이 특정 스키마로 바뀝니다.

<tablename>_ifbk<index>

즉, FK:

FK_Account

이름이 다음으로 자동 변경되었습니다.

rel_account_account_ifbk_1

저는 서류에서 그런 가능성에 대해 아무것도 발견하지 못했기 때문에 여기에 문의합니다.구성 가능한 기능인가요? 자동으로 실행되면 매우 위험할 수 있다고 생각하기 때문입니다.

무슨 생각 있어요?

편집: 답변을 참조하십시오.

네, NAVICAT MySql 도구로 만든 다른 덤프로 덤프를 삽입하기 전에 덤프를 덮어쓴 것 같습니다.

그러나 이론적으로 동일해야 할 이 문장은 SHOW CREATE TABLE에서 볼 수 있는 문장을 만들지 않았습니다. (힌트를 주신 @Michael Berkowski 감사합니다!)

SHOW CREATE TABLE의 문을 사용할 수 있는 옵션이 고급 아래에 있다는 것을 발견했습니다. 이 옵션은 이름과 함께 FK 제약 조건을 내보냅니다.

그래서 첫 번째 덤프는 FK 이름을 설정하지 않았기 때문에 mariadb는 FK 이름을 자체적으로 만들었습니다. 이것은 기술적으로 정확합니다.

그래서 기술적인 소금이 조금 들어있는 간단한 집에서 만든 문제였습니다.

언급URL : https://stackoverflow.com/questions/28089629/mariadb-10-0-renames-foreign-keys-on-dump-insert

반응형