当在表b中插入时,Mysql在表a上插入数据

时间:2014-12-02 05:31:35

标签: mysql sql select triggers insert

我想这样做: 如果不存在我的表MisLibros上的数据然后从表电子书插入值IdEbook,但当我尝试CALL mysql说:#1054 - 未知专栏' Ebook.IdEbook'在' where子句'

PD:我不想使用UPDATE,我需要做INSERT

 CREATE PROCEDURE SPExistencia ( 

)
BEGIN

START TRANSACTION;

IF NOT EXISTS (SELECT IdEbook FROM  MisLibros  WHERE Ebook.IdEbook= MisLibros.IdEbook)  THEN
INSERT INTO MisLibros (IdEbook) VALUES (NEW.IdEbook);

   ELSE 

   SIGNAL SQLSTATE '45000'
   SET MESSAGE_TEXT= 'Ya cuentas con el libro seleccionado';

   END IF;
   COMMIT;

    END;

1 个答案:

答案 0 :(得分:0)

使用示例检查CREATE TRIGGER语法。

试试这个:

DELIMITER $$

DROP TRIGGER /*!50032 IF EXISTS */ `TR_Ebook`$$

CREATE
    TRIGGER `TR_Ebook` AFTER INSERT ON `Ebook` 
    FOR EACH ROW BEGIN
        IF NOT EXISTS (SELECT 1 FROM MisLibros WHERE NEW.IdEbook = MisLibros.IdEbook) THEN 
            INSERT INTO MisLibros (IdEbook) 
            VALUES (NEW.IdEbook);
        END IF;
END;
$$

DELIMITER ;