mysql在表b中插入数据时在表a中插入数据

标签 mysql sql select triggers insert

我想这样做: 如果我的表 MisLibros 上不存在数据,则从表电子书中插入值 IdEbook,但是当我尝试调用时 mysql 说:#1054 - “where 子句”中的未知列“Ebook.IdEbook”

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;

最佳答案

检查 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 ;

关于mysql在表b中插入数据时在表a中插入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27242523/

相关文章:

sql - 如何在特殊情况下分组

mysql - SQL/PHP find_in_set

php - MySQL选择两个字段不同时在数组中

sql-server-2008 - 在 SELECT 语句中设置变量

mysql 外连接不显示空结果

mysql - Mysql中根据另一个表的值更新一个表

mysql - MySQL REGEXP 中的负反向引用

javascript - 根据子元素的 HTML 对父元素进行排序

c# - 使用 C# 和 MySQL

sql - 如何使用查询或代码合并 2 个表的行?