我想这样做: 如果我的表 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/