0
我是存儲過程的新手。我正在編寫存儲過程來存儲臨時表中的學生詳細信息。除了courseid外,一切都可以插入。我需要從temp表中插入相應於course的courseid。我得到了學校,並正確插入。但畢業後沒有插入任何東西。我不知道什麼是錯的。如何從存儲過程的表中獲取ID?
DELIMITER $$
CREATE OR REPLACE PROCEDURE InsertUpdateStudents()
BEGIN
DECLARE v_finished INTEGER DEFAULT 0;
DECLARE newsudentid, schoolid, courseid, subjectid, studentcount INT;
DECLARE co, na, ma, im, fe, fr, s, bp, o, nstudentcode, st CHAR(55);
DEClARE cur1 CURSOR FOR SELECT DT.code, DT.subject, DT.course, DT.ImageURL, DT.EnglishCr, DT.FrenchCr, DT.Si, DT.BP, DT.Off, DT.Avail FROM xcart_students_temp AS DT;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET v_finished = 1;
OPEN cur1;
dummy_students: LOOP
FETCH cur1 into co, na, ma, im, fe, fr, s, bp, o, st;
IF v_finished = 1 THEN
LEAVE dummy_students;
END IF;
IF NOT EXISTS(SELECT (1) FROM xcart_students AS P WHERE P.studentcode=co) THEN
SELECT MA.school_id INTO schoolid FROM xcart_schools AS MA WHERE LOWER(MA.name)='stmays' OR LOWER(MA.name)='st.marys' ;
SELECT BRAN.course_id INTO courseid FROM xcart_course AS BRAN WHERE LOWER(BRAN.course_name) = LOWER(ma) AND BRAN.course_school_id = schoolid ;
INSERT INTO xcart_students (cid,sid,coursename, subjectname, transfercode, mfgcode, meta_keywords, meta_description, title_tag,avail) VALUES(schoolid, courseid, ma, na, co, co, CONCAT(ma,' ',na,' ',fe), CONCAT(ma,' ',na,' ',fe), CONCAT(ma,' ',na,' ',fe), st);
SET newsudentid = LAST_INSERT_ID();
SET studentcount = 1000 + newsudentid;
SET nstudentcode = CONCAT('W',studentcount);
UPDATE xcart_students SET studentcode = nstudentcode WHERE studentid = newsudentid;
INSERT INTO xcart_students_lng_en (studentid, student, descr, fulldescr, keywords) VALUES(newsudentid, CONCAT(ma,' ',na,' ',fe,' -', s,' -',bp,' -',o), CONCAT(ma,' ',na,' ',fe,' -', s,' -',bp,' -',o), CONCAT(ma,' ',na,' ',fe,' -', s,' -',bp,' -',o), CONCAT(ma,' ',na,' ',fe,' -', s,' -',bp,' -',o));
INSERT INTO xcart_students_lng_fr (studentid, student, descr, fulldescr, keywords) VALUES(newsudentid, CONCAT(ma,' ',na,' ',fr,' -', s,' -',bp,' -',o), CONCAT(ma,' ',na,' ',fr,' -', s,' -',bp,' -',o), CONCAT(ma,' ',na,' ',fr,' -', s,' -',bp,' -',o), CONCAT(ma,' ',na,' ',fr,' -', s,' -',bp,' -',o));
IF NULLIF(im, '') IS NULL THEN
SET im = 'images/students/no-image.jpg';
END IF;
INSERT INTO xcart_images_P(id, image_path, avail, alt, md5) VALUES(newsudentid, im, 'Y', CONCAT(ma,' ',na,' ',fe,' -', s,' -',bp,' -',o), MD5(CONCAT(ma,' ',na,' ',fe,' -', s,' -',bp,' -',o)));
END IF;
END LOOP dummy_students;
CLOSE cur1;
END$$
DELIMITER ;
仍然沒有工作。 –
執行完上面沒有任何內容插入表中 –