해결책 # 1
트리거를 사용해야하는 것 같습니다. 안전을 위해 INSERT 중에 예기치 않은 오류가 발생할 경우 autoincrement가 두 번 이상 증가하는지 예측할 수 없기 때문에 AFTER INSERT 트리거를 사용해야합니다. ID가 table1
에서 실제 사용되고있는 것을 알고,
DELIMITER $$
CREATE TRIGGER table1_ai AFTER INSERT ON table1 FOR EACH ROW
BEGIN
INSERT INTO table2 (t1_ID) VALUES (NEW.ID);
END; $$
DELIMITER ;
그 방법의 ID가 안전하게 table2
에 배치됩니다 :
아마도 트리거는 다음과 같이 보일 것입니다.
솔루션 # 2
당신은 INFORMATION_SCHEMA를 사용하여 ID를 검색 할 수 있습니다. 방법?
테이블이 mydb.table1
이라고 가정합니다. mydb.table1
경험을 높은 볼륨이 트리거를 구현하기 때문에,
는 에필로그
당신은 SOLUTION #1
으로 가야 쓰는 경우
SELECT auto_increment FROM information_schema.tables
WHERE table_schema='mydb' and table_name='table1';
이 검색 할 위험 할 수 있습니다 : 당신은 신속과 같이 다음 AUTO_INCREMENT 값을 얻을 수 있습니다 코드를 작성하지 않고 두 테이블에서 ID 배치를 처리합니다.
코드를 여기에 게시하십시오. – George
D 테이블 A에 삽입하기 전에 ID를 전달 하시겠습니까? – Stoleg
마지막 ID + 1을 예상하지 말고 autoincremented 열과 함께 table1에 레코드를 삽입하고 해당 삽입에 사용 된 마지막 ID를 가져온 다음 검색된 자동 증가 값 –