简体   繁体   中英

mysql stored procedure fails on 'END'

I can't grasp as to why this won't work, i have a nearly similair procedure that works without issues, but this one just keeps throwing an error:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'END' at line 36

  DELIMITER //
CREATE PROCEDURE FillCnsGroupWithRates
(
    IN groupId INT(10)
)
BEGIN
    SET @var1 = groupId;
    INSERT INTO 
        cns_group_rates 
        (
            cns_id,
            other_cns_id,
            ppc,
            pps,
            max_price,
            notes,
            cns_group_id
        )
    SELECT 
        cns_id,
        other_cns_id,
        ppc,
        pps,
        max_price,
        notes,
        @var1
    FROM 
        cns_rates
    WHERE 
        cns_id NOT LIKE '319%'
    AND
        client_id IS NULL
    AND
        subordinates IS NULL
    AND
        valid_from IS NULL
END //
DELIMITER ;

You forgot semicolon above the end

DELIMITER //
CREATE PROCEDURE FillCnsGroupWithRates
(
    IN groupId INT(10)
)
BEGIN
    SET @var1 = groupId;
    INSERT INTO 
        cns_group_rates 
        (
            cns_id,
            other_cns_id,
            ppc,
            pps,
            max_price,
            notes,
            cns_group_id
        )
    SELECT 
        cns_id,
        other_cns_id,
        ppc,
        pps,
        max_price,
        notes,
        @var1
    FROM 
        cns_rates
    WHERE 
        cns_id NOT LIKE '319%'
    AND
        client_id IS NULL
    AND
        subordinates IS NULL
    AND
        valid_from IS NULL;
END //
DELIMITER ;

You forget semicolon in the end of query Try This

DELIMITER //
CREATE PROCEDURE FillCnsGroupWithRates
(
    IN groupId INT(10)
)
BEGIN
    SET @var1 = groupId;
    INSERT INTO 
        cns_group_rates 
        (
            cns_id,
            other_cns_id,
            ppc,
            pps,
            max_price,
            notes,
            cns_group_id
        )
    SELECT 
        cns_id,
        other_cns_id,
        ppc,
        pps,
        max_price,
        notes,
        @var1
    FROM 
        cns_rates
    WHERE 
        cns_id NOT LIKE '319%'
    AND
        client_id IS NULL
    AND
        subordinates IS NULL
    AND
        valid_from IS NULL;
END //
DELIMITER ;

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM