1
DELIMITER $
DROP PROCEDURE IF EXISTS CREATE_BACKUP$
CREATE PROCEDURE CREATE_BACKUP()
BEGIN
DECLARE BACK INT DEFAULT 0;
SELECT TABLE_NAME
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'STUDENTDB'
;
SHOW_LOOP:LOOP
IF BACK = 1
THEN
LEAVE SHOW_LOOP;
END IF;
CREATE TABLE STUDENT_BACKUP
AS SELECT * FROM STUDENT;
CREATE TABLE SCORE_BACKUP
AS SELECT * FROM SCORE;
CREATE TABLE GRADE_EVENT_BACKUP
AS SELECT * FROM grade_event;
END LOOP SHOW_LOOP;
END$
DELIMITER ;
こんにちは、この手順を実行すると、複数回実行されます。だから、 "STUDENT_BACKUP table already exists"というエラーが表示され、2回目の実行時に表示されます。 1回だけ実行するにはどうすればよいですか?プロシージャ実行時間
ループは何に必要ですか? – maSTAShuFu
なぜそこに 'LOOP'がありますか? – tadman