2012-10-07 7 views
-2

나는 데이터베이스를 처음 사용합니다. 내 질문에 내가 그 열mysql 데이터베이스의 부모 테이블에서 자식 테이블로 참조를 전달하는 방법

id, first name, last name, email and country.

하고 난라는 테이블을 만들려면 테이블 signUp을 만든 것입니다 그 열 (email,balance) 을하고 accout_recharge 나는에 가입 테이블에 새로 추가 된 이메일을 레코드를 삽입 할 때마다 가입 테이블은 또한 참조 또는 외래 키를 사용하거나 필수이지만 중복없이 account_recharge 테이블에 나타납니다.

+0

우리는 더 나은 지금 도와 드릴 수 있습니다. 또한 내가 시작하기 전에 몇 가지 기본을 배울 u를 제안합니다 –

+0

주셔서 감사합니다. 데이터베이스의 기본 학습을위한 링크를 참조하십시오. –

답변

1

당신은 당신이 외래 키 참조에 대한 자세한 내용

업데이트를 찾을 여기

CREATE TABLE signup (
    id INT NOT NULL, 
    firstName varchar(50), 
    lastName varchar(50), 
    countryName varchar(50), 
    emailName varchar(50), 
    PRIMARY KEY (id), 
    index email_ind(emailName) -- updated here 
) ENGINE=INNODB; 


CREATE TABLE accout_recharge( 
    id INT, 
    balance DECIMAL, 
    email varchar(50),  
    FOREIGN KEY (email) REFERENCES signup (emailName) 
         ON DELETE CASCADE 
) ENGINE=INNODB; 

MySql Foreign Key을 시도 할 수 있습니다 : 나는 잊지는 당신에게 그 항상 외래 키 참조 indexed 컬럼의 일종. 그래서 당신은 색인에서 이메일 열을 돌려야합니다. 그 이유는 당신이 오류가 발생하는 이유입니다 : 150

+0

고마워! 계정 재충전 테이블을 만들 수 없습니다. emailName의 가입시 다른 열 이름으로 인해 오류가 발생할 수 있으며 참조 테이블에는 이메일 만 있습니다. –

+0

여전히 오류가 있습니다! 가입 테이블이 생성되었지만 account_recharge를 만들 수 없습니다. 다음 오류가 발생했습니다. # 1072 - 'email'키 열이 테이블 –

+0

에 존재하지 않습니다. DROP TABLE EXISTS 가입시 DROP TABLE IF EXIS_REcharge; 및 상위 쿼리 시도 –

관련 문제