>  Q&A  >  본문

MYSQL 데이터베이스의 다른 테이블에서 데이터를 추출하여 기존 열을 변경합니다.

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

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

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

으아악

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

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

P粉143640496P粉143640496375일 전540

모든 응답(1)나는 대답할 것이다

  • P粉501683874

    P粉5016838742023-09-11 00:39:41

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

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

    다음 예를 들어보세요:

    사용자 데이터

    으아악

    게시물

    으아악

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

    으아악

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

    으아악

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

    으아악

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

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

    회신하다
    0
  • 취소회신하다