Mysql过程插入(我已经看过其他答案)
在mysql中,我有两个表:produto和dim_produtoMysql过程插入(我已经看过其他答案),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
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
触发器。