创建存储过程以更新新记录的字段

时间:2014-01-03 19:40:44

标签: mysql stored-procedures

我正在尝试在MYSQL中创建一个存储过程,如果在创建记录时留空,则填充字段。具体来说,我们有一个应用程序,它在创建新故障单时使用CC字段填充电子邮件地址。

DELIMITER $$

CREATE DEFINER=`root`@`localhost` PROCEDURE `cc_update`()
BEGIN
SELECT * FROM `ehelpdesk`.`ticket` WHERE `CC` = 'Null';
UPDATE `ehelpdesk`.`ticket` SET `CC`='email@mail.com';

END

我不知道如何在创建新故障单或“ID”时调用该程序。

这是我用来创建触发器的完整代码

    
DELIMITER $$

CREATE TRIGGER `ins_cc` BEFORE INSERT ON `ticket` FOR EACH ROW BEGIN

IF (NEW.CC IS NULL) THEN
SET NEW.CC='email.string';
End If;
end$$

DELIMITER ;

1 个答案:

答案 0 :(得分:0)

您可以创建一个触发器,每次将记录插入ehelpdesk表时都会执行该触发器:

CREATE TRIGGER `ticket_BINS` BEFORE INSERT ON `ticket` FOR EACH ROW
BEGIN

  IF (NEW.CC IS NULL) THEN
    SET NEW.CC= "email@mail.com";
  END IF;

END;

对于你正在做的事情,确保CC不为空,我建议将ticket.CC的默认值设置为email@mail.com

ALTER TABLE `ehelpdesk`.`ticket` 
CHANGE COLUMN `CC` `CC` VARCHAR(45) NULL DEFAULT 'email@mail.com' ;

您的存储过程不正确

CREATE DEFINER=`root`@`localhost` PROCEDURE `cc_update`()
BEGIN
  UPDATE `ehelpdesk`.`ticket` SET `CC`='email@mail.com' WHERE `CC` IS NULL;
END