2013-02-26 3 views
0

스윙 구성 요소가있는 Java 응용 프로그램을 만들고 있지만 테이블에 4 개의 값을 삽입하는 저장 프로 시저를 만드는 방법이나 트리거를 사용하는 것이 더 나은 경우에는 만들지 않습니다. 이 내 인터페이스 :테이블에 4 개의 값을 삽입하는 저장 프로 시저를 만들려면 어떻게해야합니까?

Question: ______textbox_____  correct answer:(bonne reponse) 
Reponse A: _____textbox______  *A (Radio button) 
Reponse B: _____textbox______  *B (Radio button) [Add button] 
Reponse C: _____textbox______  *C (Radio button) 
Reponse D: _____textbox______  *D (Radio button) 
(levels)Paliers: _______ComboBox___ 

그리고 사람들은 MySQL의

-- ----------------------------------------------------- 
-- Table `mydb`.`questions` 
-- ----------------------------------------------------- 
CREATE TABLE `questions` (
    `idquestion` INT NOT NULL AUTO_INCREMENT , 
    `question` VARCHAR(150) NULL , 
    `palier_fk` INT NULL , 
    PRIMARY KEY (`idquestion`) , 
    INDEX `palier_fk` (`palier_fk` ASC) , 
    CONSTRAINT `palier_fk` 
    FOREIGN KEY (`palier_fk`) 
    REFERENCES `paliers` (`idpalier`) 
    ) 

-- ----------------------------------------------------- 
-- Table `reponses` 
-- ----------------------------------------------------- 
CREATE TABLE `reponses` (
    `idreponse` INT NOT NULL AUTO_INCREMENT , 
    `response` VARCHAR(60) NULL , 
    `bonne` TINYINT(1) NULL , 
    `question_fk` INT NULL , 
    PRIMARY KEY (`idreponse`) , 
    INDEX `question_fk` (`question_fk` ASC) , 
    CONSTRAINT `question_fk` 
    FOREIGN KEY (`question_fk`) 
    REFERENCES `questions` (`idquestion`) 
    ) 

내 테이블입니다하지만 문제는 내가 4 개 값을 삽입 할 수있는 저장 프로 시저와 삽입하기 위해 동일한 시간을 만들 수있는 방법이다 idpalier 테이블의 문제는 (1,2,3)

은 이걸로 시도했지만 잘못된

CREATE PROCEDURE sp_reponses_INSERT 
(

IN idreponse int(11), 
IN reponse varchar(60), 
IN bonne tinyint(1), 
IN question_fk int(11) 
) 
BEGIN 

INSERT INTO reponses(
    reponse, 
    bonne, 
    question_fk 
) 
VALUES 
( 
    reponse, 
    bonne, 
    question_fk 

), 

( 
    reponse, 
    bonne, 
    question_fk 

), 
( 
    reponse, 
    bonne, 
    question_fk 

), 
( 
    reponse, 
    bonne, 
    question_fk 

), 

; 

END 

GO 
있어

다른 한편으로는 저장 프로 시저 대신 트리거를 만들려고 생각하고 있지만 그 점에 대해서는 확실하지 않습니다. 왜냐하면 테이블 응답에 4 가지 응답뿐만 아니라 테이블 질문에 질문을 삽입해야하기 때문입니다.

아이디어가 있으십니까? 다음과 같이

+0

어떤 오류 메시지가 표시됩니까? – Sebastian

+0

나는 양식을 저장하는 동안 귀하의 절차가 호출됩니다. 왜 그냥 4 개의 인서트를 호출하지 않을까요? – shibormot

+0

저장 프로 시저가 이제 올바른 것입니다! 하지만 트리거를 생성하고 답변을 삽입 한 후에 질문을 삽입하거나 반대로 트리거를 삽입 할 수 있는지 여부는 알 수 없습니다. – lezti

답변

0

당신은 당신의 저장 프로 시저를 다시 작성할 수 있습니다 :

CREATE PROCEDURE sp_reponses_INSERT 
(
@reponse varchar(60), 
@bonne tinyint(1), 
@question_fk int(11) 
) 
BEGIN 

INSERT INTO reponses(
    reponse, 
    bonne, 
    question_fk 
) 
VALUES 
( 
    @reponse, 
    @bonne, 
    @question_fk 

) 
END 

이제 변수에 전달하고이 저장 프로 시저를 실행할 수 있습니다. 그러나이 절차는 1 번 실행됩니다. 매번 새로운 변수 세트를 4 번 호출해야합니다.

응답 테이블에 트리거를 추가 한 다음 질문 테이블에 삽입 할 수 있습니다.

관련 문제