MariaDB заполняет таблицу процедурой не работает

Что не так с инструкциями в букле Пока. Когда я вызываю процедуру, в таблицу не вставляется строка. Я попытался добавить один вручную до конца while, и он вставлен в таблицу. Ниже процедура и сценарий таблицы.

DELIMITER /
CREATE OR REPLACE PROCEDURE filltimeDim ()
BEGIN
    DECLARE vDate DATE;
    DECLARE vYear CHARACTER(4);
    DECLARE vQuarter CHARACTER(6);
    DECLARE vMonth_Name VARCHAR(20);
    DECLARE vWeekday_Name VARCHAR(20);
    DECLARE vMonth_Num SMALLINT;
    DECLARE vWeekday_Num SMALLINT;
    BEGIN
        TRUNCATE TABLE Time_Dim;
        SET vDate =  CONVERT('1998-01-01', DATE);
        WHILE (vDate <=  CONVERT('2000-12-31', DATE)) DO
            SET vYear =  YEAR(vDate);
            SET vQuarter =  QUARTER(vDate);
            SET vMonth_Name =  MONTHNAME(vDate);
            SET vWeekday_Name =  DAYNAME(vDate);
            SET vMonth_Num =  MONTH(vDate);
            SET vWeekday_Num =  WEEKDAY(vDate);
            INSERT INTO Time_Dim VALUES 
            (vDate, vYear, vQuarter, vMonth_Name,vWeekday_Name,vMonth_Num,vWeekday_Num);
            SET vDate = vDate + 1;
        END WHILE;  
        COMMIT;
    END;
END/
CREATE TABLE Time_Dim (
   Date_ID DATE PRIMARY KEY,
   Year_ID CHARACTER(4),
   Quarter VARCHAR(20),
   Month_Name VARCHAR(20),
   Weekday_Name VARCHAR(20),
   Month_Num SMALLINT,
   Weekday_NUM SMALLINT
);

0 ответов

Другие вопросы по тегам