상태 설명
두 개의 데이터베이스가 있습니다, DB1
和 DB2
,它们具有相同的表 Author
,其中字段为 Author.ID
和 Author.AuthorName
.
DB1.Author
의 Author.ID
필드 DB1.Author
的 Author.ID
字段有 AUTO_INCRMENT,而 DB2.Author
没有 AUTO_INCRMENT,因为它依赖于 DB1
에는
DB2.Author
에는 Author.ID
上的 PRIMARY 索引和 Author.AuthorName
AUTO_INCRMENT가 없습니다. DB1
데이터 정확성.
두 테이블 모두 DB2.Author
具有从 DB1.Author
에 대한 고유 인덱스를 가지고 있습니다.
복사된 줄입니다.
두 데이터베이스 모두버전 10.6.7을 사용합니다.
질문DB1
管理员删除了 DB1.Author
ID | |
---|---|
1 | |
2 | |
3 |
AuthorName
为 'B'
ID | |
---|---|
1 | |
3 |
ID | |
---|---|
1 | |
2 |
DB1.Author
复制到 DB2.Author
而不删除 DB2.Author
表中的所有内容,这样我就不会'不会丢失 CASCADE
이제 DB2.Author
를 삭제하지 않고 DB1.Author
에서 DB2.Author
로 행의 업데이트된 상태를
CASCADE
효과에 대한 데이터가 손실되지 않도록 표에 있는 모든 내용 가장 좋은 방법은 무엇인가요?
ID
2 会尝试插入 'C'
的重复值,因为它ID
내 사진
내가 그렇게 했지만 중복 키의 경우 다른 중복 키를 생성하려고 시도하기 때문에 분명히 작동하지 않습니다(중복 은(는) 3에 이미 존재합니다): 으아아아
다른 방법이 있나요? 🎜🎜 🎜가능한 SQL 쿼리 솔루션 외에 다른 데이터베이스에서 데이터가 변경될 때 한 데이터베이스의 테이블 데이터를 자동으로 업데이트할 수 있는 다른 방법이 있나요? 일부 테이블만 복사하면 되고 다른 연결된 테이블은 복사하면 안 됩니다. 🎜
TL;DR, 문제는 데이터베이스 관리자입니다. 해결책은 데이터를 이전 상태로 복원하여 피해를 복구하는 것입니다. 행을 삭제하면 됩니다. 기본 키 업데이트는 작동하지 않습니다.
실수를 해결하기 위해 해결책을 만들거나 검증하지 마세요. 그렇게 하면 같은 일이 다시 일어날 가능성이 높아집니다.
완전한 답변.
실제 문제는 데이터베이스의 기본 규칙을 위반하는 "데이터베이스 관리자"입니다. 대리 키 값을 업데이트하지 마세요!
귀하의 경우에는 ID 열 값의 공백이 어쨌든 중요하지 않기 때문에 상황이 더욱 비극적입니다. 격차가 중요하다면 상황은 더욱 악화됩니다. 설명해주세요...
저작자 이름은 귀하의 실제식별자입니다. 고유한 제약 조건이 있기 때문에 이를 알고 있습니다.
ID 열은 대리 키이며 자동 증가 정수로 가장 편리하게 구현되지만, 대리 키가 임의의(고유) 숫자인 경우에도 대리 키가 제대로 작동합니다. 차이 또는 값 자체의 선택은 대리 키의 유효성과 아무 관련이 없습니다.