站内搜索

mysql通过存储过程简化INSERT和UPDATE_MySQL

处理目的,当数据表中存在目标记录时,执行UPDATE;当数据表中不存在目标记录时,执行INSERT;从而减少一次查询数据库的过程

存储过程设计如下:

CREATE PROCEDURE `pro_SaveData`(IN `sinst` varchar(500),IN `supdt` varchar(500))BEGIN	#直接更新记录     set @v_updsql=supdt;        prepare stmt from @v_updsql;       EXECUTE stmt;           	#记录不存在,执行INSERT	IF ROW_COUNT() =0 THEN			set @v_intsql=sinst;     prepare stmt from @v_intsql;      EXECUTE stmt;      	END IF;deallocate prepare stmt;    END;


C#调用如下:

int r = data.ExecuteNonQuery(System.Data.CommandType.StoredProcedure,                @"CALL pro_SaveData (' INSERT INTO `table` VALUES ('1', 'username')',                'UPDATE table SET name='table222' WHERE id='1';')", null);
  • 上一篇:简单分析MySQL中的primary key功能_MySQL
  • 下一篇:通过实例认识MySQL中前缀索引的用法_MySQL