【问题标题】:MySql update procedure errorMySql更新程序错误
【发布时间】:2015-04-02 07:42:26
【问题描述】:

我的更新查询有问题。我需要让它工作:P

该过程选择所有重复的记录(需要重新创建以选择和更新值)

DELIMITER $$
USE `bgw_r`$$
DROP PROCEDURE IF EXISTS `tpl_pobierz_dodane`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `tpl_pobierz_dodane`(puzytkownik VARCHAR(50), psesja VARCHAR(50))
BEGIN
SELECT a.`id` AS idd FROM `paliwa_temp` AS a INNER JOIN `paliwo_fv` AS b 
ON (a.`numerRejestracyjny` = b.`numer_rejestracyjny`)
WHERE a.`sesja` = psesja AND b.`data_tankowania` = a.`dataTankowania` AND a.`iloscPaliwa` = b.`wydano_litry`; # GROUP BY id
END$$
DELIMITER ;

或创建其他更新该值的过程:

DELIMITER $$
USE `bgw_r`$$
DROP PROCEDURE IF EXISTS `tpl_ustaw_jako_duplikaty`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `tpl_ustaw_jako_duplikaty`(puzytkownik VARCHAR(50), psesja VARCHAR(50))
BEGIN
UPDATE a
    SET a.`duplikat` = "true"
    FROM `paliwa_temp` AS a
    INNER JOIN `paliwo_fv` AS b
    ON( b.`numer_rejestracyjny` = a.`numerRejestracyjny`)
    WHERE a.`sesja` = psesja AND b.`data_tankowania` = a.`dataTankowania` AND a.`iloscPaliwa` = b.`wydano_litry`;
END$$
DELIMITER ;

更新查询错误: 错误代码: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 'FROM `paliwa_temp` as a
    INNER JOIN `paliwo_fv` as b
    on( b.`numer_rejestracyjny' at line 5

不知道为什么:/

【问题讨论】:

    标签: mysql stored-procedures procedures


    【解决方案1】:

    正确的join更新语句应该是as

    update paliwa_temp a
    INNER JOIN `paliwo_fv` AS b
    ON( b.`numer_rejestracyjny` = a.`numerRejestracyjny`)
    SET a.`duplikat` = "true"
    WHERE a.`sesja` = psesja 
    AND b.`data_tankowania` = a.`dataTankowania` 
    AND a.`iloscPaliwa` = b.`wydano_lit
    

    【讨论】:

    • 感谢您的宝贵时间 :)
    【解决方案2】:

    update with join 的语法必须是:

    UPDATE  `paliwa_temp` AS a
    INNER JOIN `paliwo_fv` AS b
        ON( b.`numer_rejestracyjny` = a.`numerRejestracyjny`)
        SET a.`duplikat` = "true"
              WHERE a.`sesja` = psesja AND b.`data_tankowania` = a.`dataTankowania` AND a.`iloscPaliwa` = b.`wydano_litry`;
    

    【讨论】:

      猜你喜欢
      • 2013-03-12
      • 2011-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-10
      • 2011-05-03
      • 2013-06-12
      相关资源
      最近更新 更多