Peter
Peter

Reputation: 13

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 ;

Upvotes: 0

Views: 163

Answers (2)

varad mayee
varad mayee

Reputation: 619

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 ;

Upvotes: 1

Vipin Jain
Vipin Jain

Reputation: 3756

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 ;

Upvotes: 0

Related Questions