내가이 늦게 정말오고 알고 있지만, 실제 해결책을 찾기 위해 나에게 나이를했다 때문에 나뿐만 아니라 공유 할 수 있습니다. 나는 아래의 예를 연구했다. 생성
테이블은 다음과 같습니다
CREATE PROCEDURE BOOK_IMPORTANT(_PRICE DOUBLE, _B_ID INT, A_NAME CHAR(15), _BD_ID INT)
BEGIN
INSERT INTO BOOK(PRICE)
VALUES(_PRICE);
SET _B_ID=LAST_INSERT_ID();
INSERT INTO BOOK_COMMENT(B_ID)
VALUES(_B_ID);
SET _BD_ID=LAST_INSERT_ID();
INSERT INTO AUTHOR(A_NAME,B_ID)
VALUES(A_NAME,_BD_ID);
END
는 다음 값을 삽입하려면 다음을 사용
CREATE TABLE BOOK(
B_ID INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(B_ID),
TITLE VARCHAR(100),
DESCRIPTION VARCHAR(30),
PRICE DOUBLE);
CREATE TABLE BOOK_COMMENT(
PRIMARY KEY(B_C_ID),
B_C_ID INT NOT NULL AUTO_INCREMENT,
REMARK VARCHAR(120),
B_ID INT,
FOREIGN KEY(B_ID) REFERENCES BOOK(B_ID));
CREATE TABLE AUTHOR(
A_ID INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(A_ID),
A_NAME CHAR(15),
B_ID INT,
FOREIGN KEY(B_ID) REFERENCES BOOK(B_ID));
- DELIMITER.
CALL BOOK_IMPORTANT('0.79',LAST_INSERT_ID(),'',LAST_INSERT_ID());
LAST_INSERT_ID()
테이블의 마지막 자동 증가를 받아 자식 테이블의 참조 컬럼에 삽입합니다.
프로 시저 매개 변수 _B_ID
및 _BD_ID
은 두 테이블에서 외래 키로 B_ID
이 필요하므로 B_ID
을 나타냅니다.
과도한 표현은 유감입니다. 다른 모든 사람들은 당신이 자동으로 그것을하는 방법을 알기를 기대합니다. 희망 하시겠습니까?
인라인 하위 쿼리 – bobobobo
을 사용해보세요.이 답변입니까? 해결책은 어디 있습니까? – Serge
이렇게 할 수 없습니까? – Samra