MYSQL stored procedure for update variables are 0

后端 未结 1 1973
余生分开走
余生分开走 2021-01-26 12:10

I have the following stored procedure in a MYSQL database. The stored procedure gets lon,lat and than I\'m doing an update on a different database and table.

DRO         


        
相关标签:
1条回答
  • 2021-01-26 12:30

    The problem is that the procedure parameter has the same name as a column in the tables. When you refer to propertyid in the queries, it uses the column, not the parameter. Column and variable names are case-insensitive, so it doesn't matter that you spelled one of them PropertyID and the other propertyId.

    Use a different name for the parameter, e.g. p_propertyId

    Also, there's no need for two queries, you can do it in one with a JOIN.

    UPDATE sales.florida AS s
    CROSS JOIN (
        SELECT *
        FROM annuals.florida
        WHERE propertyId = p_propertyId
        LIMIT 1) AS a
    SET s.SitusLongitude = a.SitusLongitude, s.SitusLatitude = a.SitusLatitude
    WHERE s.PROPERTYUNIQUEID = p_propertyId
    

    Note that using LIMIT without ORDER BY means that the row that's selected will be unpredictable.

    0 讨论(0)
提交回复
热议问题