MYSQL 데이터베이스의 다른 테이블에서 데이터를 추출하여 기존 열을 변경합니다.
P粉143640496
P粉143640496 2023-09-10 08:45:15
0
1
627

두 개의 테이블이 있는 MYSQL 데이터베이스(phpMyAdmin에 있음)가 있습니다. usersposts。两个表都有一个username列。我想修改posts表中的username列,使其从users表中提取用户名数据,即posts表中的数据会自动从users表中更新,并在对users 업데이트가 이루어질 때 테이블이 참조됩니다.

처음에는 이 기능을 구현하기 위해 외래 키를 사용할 수 있다고 생각했는데, 올바르게 이해했다면 외래 키는 상위 테이블의 기본 키에만 연결된다는 뜻이겠죠?

다음 구문이 올바르지 않다는 오류가 발생하지만 힌트/해결책은 제공되지 않습니다.

으아악

데이터베이스의 다른 테이블에 있는 열의 데이터를 참조/사용하도록 기존 열을 수정하는 방법은 무엇입니까?

username列具有相同的类型、大小和属性,即VARCHAR(55) NOT NULL 두 테이블 중 innoDB 스토리지 엔진을 사용합니다.

P粉143640496
P粉143640496

모든 응답(1)
P粉501683874

외래 키는 데이터 무결성 검사일 뿐이며 그 이상은 아닙니다. 하위 테이블의 필드에 상위 테이블의 참조 필드에 나타나는 값이 포함되어 있는지 확인합니다. 그게 다야 *.

외래 키를 사용하여 한 테이블의 데이터를 다른 테이블에 병합할 수 없습니다. 그러나 JOIN 문은 필요한 작업을 정확하게 수행하며 외래 키와 함께 사용하면 각 게시물에 올바른 사용자 데이터를 식별하는 유효한 사용자 이름이 있는지 확인됩니다.

다음 예를 들어보세요:

사용자 데이터

으아악

게시물

으아악

다음 쿼리를 사용하여 userdata 테이블을 posts 테이블 userdata表与posts表进行JOIN과 비교할 수 있습니다.

으아악

이 쿼리를 기반으로 VIEW를 추가로 생성하여 데이터를 반환할 수 있습니다.

으아악

뷰를 쿼리하려면 SELECT문을 사용하세요.

으아악

데모: https://www.db-fiddle.com/f/tbBXvthBtwH7CKu1yjzPjQ/0

* 외래 키를 사용하면 상위 테이블의 업데이트 및 삭제가 하위 테이블로 계단식으로 전달될 수도 있지만 이는 이 문서의 범위를 벗어납니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿