먼저 carslibrary
테이블에 삽입 할 때 '알지 못하므로'facerecord.colorslibrary_ID
에 지정된 기본값이 있어야합니다.
CREATE TABLE `facerecord` (
`carslibrary_ID` int(10) unsigned NOT NULL,
`colorslibrary_ID` int(10) unsigned NOT NULL DEFAULT '0',
KEY `carslibrary_ID` (`carslibrary_ID`),
KEY `colorslibrary_ID` (`colorslibrary_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
가 나는 또한 당신이 이제까지 외부 키를 설정 같은 느낌이 경우에 colorslibrary.ColorID
열의 일치하도록 colorslibrary_ID
열의 데이터 유형을 변경했습니다 : 즉, facerecord
테이블이 될 수 있도록 당신이 당신의 DDL을 변경할 수 있다고 말했다 facerecord.colorslibrary_ID
및 colorslibrary.ColorID
사이). 완성도를 위해서 당신은 그러므로 ColorID = 0과 colorslibrary
테이블에 행을 삽입해야합니다
다음
insert into `colorslibrary` (ColorName) values ('unknown color');
update `colorslibrary` set ColorID = 0 where ColorName = 'unknown color';
는 계속 진행하여 facerecord
테이블에 삽입하는 트리거를 정의 할 수 있습니다 :
delimiter $$
CREATE TRIGGER carslibrary_trigger
AFTER insert ON carslibrary
FOR EACH ROW
BEGIN
insert into facerecord (carslibrary_ID) values (new.CarID);
END$$
delimiter;
facerecord
테이블에 삽입 된 모든 새로운 행은 '알 수없는 색'colorslibrary.ColorName
과 관련된 colorslibrary_ID
으로 삽입됩니다. 그러면 알고있을 때 수동으로 facerecord.colorslibrary_ID
을 업데이트 할 수 있습니다.
행운을 빈다.
당신이 먼저 기존의 트리거를 찾아 당신이 그렇게 할 수있는 carslibrary 테이블에서 기존
AFTER insert
트리거를 제거해야하는 경우 이
PS가 :
select trigger_name
from information_schema.triggers
where event_object_table = 'carslibrary'
and action_timing = 'AFTER'
and event_manipulation= 'INSERT';
그런 다음 위의 문에 의해 반환 된 트리거의 이름을을 (할 수 있습니다 'carslibrary_trigger'가 반환되는 문자열)을 말하고 실행
다음
drop trigger carslibrary_trigger;
가 CREATE TRIGGER
스크립트를 다시 실행합니다.
일단 트리거가 설정되면 지정한 트리거 동작이 발생할 때 지정한 동작이 자동으로 수행됩니다. 이 경우 우리는 데이터베이스에 "facerecord.carslibrary_ID
열을 채우는 carslibrary
행의 CarID
행을 사용하여 carslibrary 테이블에 삽입이 자동으로 행을 삽입하여"facerecord
테이블에 행을 삽입 한 후 데이터베이스에 알립니다. " 대부분의 것들과 마찬가지로 가장 좋은 방법은 그것을 시도하는 것입니다! 방아쇠를 수동으로 만들면 수동으로 새 행을 'carslibrary table. Now look at the data in the
facerecord` 테이블에 삽입합니다. 트리거 실행에 의해 삽입 된 새 행이 표시됩니다.
트리거에 대해 학습하면 도움이 될 것 같습니다. 이 답변은 방법이기 때문에 나는 처음에 그것을 의도했다는 이유로 MySQL site에서 문서를 추천합니다!
정보가 1/2 밖에없는 경우 자동차 라이브러리 레코드를 삽입 할 때 facerecord에 자동으로 레코드를 추가 할 수 있습니까?나에게 facerecord 테이블은 자동차 -> 색상의 관계 테이블처럼 보입니다. – Geoffrey
colorslibrary_ID는 동안 carslibrary_ID해야하지 –