2
好,我有这样的代码在存储过程:MYSQL得到准备好的声明中更新的行数在存储过程
SET @qry = CONCAT('UPDATE ', usermeta_table, ' SET meta_value = ', @token_count, ' WHERE user_id = ', @temp_id, ' AND meta_key = "token_count"');
PREPARE stmt FROM @qry;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET @did_update = (SELECT ROW_COUNT());
IF @did_update = 0 THEN
SET @qry = CONCAT('INSERT INTO ', usermeta_table, '(user_id, meta_key, meta_value) VALUES (', @temp_id, ', "token_count", ', @token_count, ')');
PREPARE stmt FROM @qry;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END IF;
什么我后,如果更新不更新任何行,然后进行表中的一排。
由于某种原因,当我运行上述代码时did_update
始终会回到0,因此即使更新已更新某些行也会发生插入。我如何解决这个问题?
UPDATE:我刚刚意识到,如果值不更新,尽管现有的IT返回零行的行改变。这是什么原因造成我的逻辑,打破...
当您释放时,它有什么关系吗? – tofutim
@tofutim - 没有关系,当 – Brady