Mysql过程插入(我已经看过其他答案)

Mysql过程插入(我已经看过其他答案),mysql,select,stored-procedures,Mysql,Select,Stored Procedures,在mysql中,我有两个表:produto和dim_produto CREATE TABLE `produto` ( `IdProduto` int(11) NOT NULL AUTO_INCREMENT, `Ativo` char(1) DEFAULT 'S', `CodPro` int(4) NOT NULL, `CodCat` int(4) NOT NULL, `DesPro` varchar(45) NOT NULL, `CodMar` int(3) NOT NU

在mysql中,我有两个表:produto和dim_produto

CREATE TABLE `produto` (
  `IdProduto` int(11) NOT NULL AUTO_INCREMENT,
  `Ativo` char(1) DEFAULT 'S',
  `CodPro` int(4) NOT NULL,
  `CodCat` int(4) NOT NULL,
  `DesPro` varchar(45) NOT NULL,
  `CodMar` int(3) NOT NULL,
  `CodSab` int(3) NOT NULL,
  `QtdCaixa` int(2) NOT NULL,
  `Transmitido` char(1) DEFAULT 'N',
  PRIMARY KEY (`IdProduto`,`CodPro`),
  ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

-- 

CREATE TABLE `dim_produto` (
  `CodPro` int(4) NOT NULL,
  `Ativo` char(1) DEFAULT NULL,
  `CodCat` int(4) DEFAULT NULL,
  `Despro` varchar(45) DEFAULT NULL,
  `IdInc` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`CodPro`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
我正在尝试创建一个程序,在表中生成一个选定的产品,然后输入dim_produto表

DELIMITER |
CREATE PROCEDURE dimProduto (codpro int (4), ativo char (1), codcat int (4), despro varchar (45))
BEGIN
insert into dim_produto (codpro, ativo, codcat, despro) (select codpro, ativo, codcat, despro from produto where transmitido = 'N');
END |
如果我按程序中的方式插入,它将完美工作

当我将该过程插入select表格dim_produto时,如何调用该过程? 我该怎么称呼它呢


非常感谢。

您正在查找触发器,而不是存储过程:。不。。。因为我不想在表中有某些事件时运行。我希望该过程在运行时运行。您可以使用
call dimProduto(1,'test',2,…)
调用该过程。这就是你要问的吗?@zedfoxus,我想在不必手动输入值的情况下执行该过程,希望该过程已经看到将通过选择插入的数据。比如:调用dim_produto(codpro、ativo、codcat、despro);或致电dim_produto(选择1、选择2、选择3、选择4).“查看将通过选择按钮插入的数据”。你知道触发器是怎么工作的吗?您正在描述
produto
上的
insert
触发器。