提问人:Supriya_21 提问时间:10/5/2023 最后编辑:Denis MichealSupriya_21 更新时间:10/6/2023 访问量:39
MySQL 存储过程插入选择
MySQL stored procedure insert select
问:
CREATE DEFINER=`generic_user`@`localhost` PROCEDURE `copy_GenericOperation`(IN genericInputID INT)
BEGIN
DECLARE newOperationInfoId int;
Insert into genericOperationInfoTable(createdBy, creationDate, modifiedBy, modificationDate, genericOperationId, cycleTime, notes, overrideFlag, processId, subProcessId, setupId)
select createdBy, createdDate, updatedBy, updatedDate, operationId, cycleTime, notes, override, processId, subProcessId, setupId
from operationinfo
where id=genericInputID;
SELECT LAST_INSERT_ID() as newOperationInfoId;
SET newOperationInfoId=LAST_INSERT_ID();
Insert into genericTransactionTable(id, parameterId, value, genericOperationInfoId, overrideFlag)
SELECT
ot.parameterId, ot.value, newOperationInfoId, ot.overrideFlag
FROM genericTransactionTable as ot
where ot.genericOperationInfoId=genericInputID;
END
我正在尝试创建一个存储过程,以便将插入表中最后生成的 ID 插入到下一个表中
第一次插入工作正常,但我不确定为什么没有在第二个表中插入任何数据
答:
0赞
Supriya_21
10/6/2023
#1
我得到了解决方案,即声明的变量名和列名相同,因此存在歧义。 基本上我所看到的是,每当考虑新的变量 kr 声明或输入参数时。该名称不应与我们尝试插入或插入的任何列名称匹配
评论
genericTransactionTable
genericInputID