2014-11-27 2 views
0

표 1 :MYSQL 외래 키 업데이트하지 표

+--------------+-------------+------+-----+---------+----------------+ 
| Field  | Type  | Null | Key | Default | Extra   | 
+--------------+-------------+------+-----+---------+----------------+ 
| ID   | int(11)  | NO | PRI | NULL | auto_increment | 
| FONO   | int(11)  | NO | MUL |   |    | 
| Description | varchar(25) | NO |  |   |    | 
| Amount  | varchar(60) | NO |  |   |    | 
+--------------+-------------+------+-----+---------+----------------+ 

표 2 :

+--------------+-------------+------+-----+---------+----------------+ 
| Field  | Type  | Null | Key | Default | Extra   | 
+--------------+-------------+------+-----+---------+----------------+ 
| FONO   | int(11)  | NO | PRI | NULL | auto_increment | 
| FINVNO  | varchar(20) | NO |  |   |    | 
| Description | varchar(25) | NO |  |   |    | 
| Amount  | varchar(60) | NO |  |   |    | 
+--------------+-------------+------+-----+---------+----------------+ 

나는 자동으로 표 2의 FONO 열에서 값을 가져 표 1에 열 FONO을하고 싶습니다. 나는 그것을 업데이트 할 수 있도록 그것을 설정했다.

레코드가 입력 될 때 테이블 1의 FONO 열은 비어 있지만.

왜 이런 일이 발생합니까? 이 문제를 해결하려면 어떻게해야합니까?

감사합니다.

답변

1

캐스케이드는 외래 키가 정의되어있는 캐스케이드 동작 및 삽입이 아닌 기본 키를 삭제하고 업데이트 할 때 발생합니다.

ON DELETE CASCADE 

ON UPDATE CASCADE 

그냥 check out more here

+0

그래서 나는 삽입에 같은 값을 얻을 수있는 열을 얻는 중위 트리거를 작성해야? – BEE

+0

네, 삽입 쿼리를 두 번 실행하면 테이블 2의 기본 키를 가져 와서 테이블 2의 기본 키를 가져 와서 테이블 1의 외래 키로 삽입 할 수 있습니다. 어쨌든 할 일을 알고 있습니다. –