存储过程输出参数不变

时间:2020-08-16 07:08:08

标签: python mysql

我正在调用一个存储过程,该存储过程将插入新行,但是如果存在唯一名称,则只需更新分子并应返回更新后的ID。

10^6

第二次尝试插入相同值后,分子将更新。 “测试”表获取预期的更新主题ID, 但是我在Python端的out参数没有受到影响:

CREATE PROCEDURE bear_crm.insert_subject(in_subject_name varchar(100), OUT out_subject_id int)
BEGIN
    DECLARE  t_update_id int;
    set t_update_id := 0;
    INSERT INTO t_subject (subject_name) VALUES (in_subject_name) ON DUPLICATE KEY
    UPDATE pop_index = COALESCE(pop_index,0)+1, subject_id=LAST_INSERT_ID(subject_id);
    set out_subject_id :=  LAST_INSERT_ID();
    
    insert into testing(aa) values(out_subject_id); # just a test to see values
END//

v_id = -999 v_args = ['test subject', v_id] mycursor.callproc('insert_subject', v_args) print('id is:', v_args[1]) 仍为-999

0 个答案:

没有答案