• MySQL: ON DUPLICATE KEY UPDATE 用法

    日期:

    使用该语法可在插入记录的时候先判断记录是否存在,如果不存在则插入,否则更新,很方便,无需执行两条SQL INSERT INTO osc_visit_stats(stat_date,type,id,view_count) VALUES (?,?,?,?) ON DUPLICATE KEY UPDATE view_count=view_count+?-- osc_visit_stat...

  • MySQL存储过程相互调用并获得错误码

    日期:

    演示如何在存储过程中调用另外一个存储过程,并获取执行的错误信息 mysqlmysql delimiter $$mysqlmysql CREATE PROCEDURE myProc() - MODIFIES SQL DATA - BEGIN - DECLARE l_status VARCHAR(20);- - CALL myProc1(l_status); - IF l_status=Duplicate Entry...

  • MySQL 的 CASE WHEN 语句

    日期:

    代码片段(4) [代码]使用CASE WHEN进行字符串替换处理 01 /* 02 03 mysqlselect*fromsales; 04 +-----+------------+--------+--------+--------+------+------------+ 05 | num |name| winter | spring | summer | fall | category | 06 +-----+------------...

  • MySQL 存储过程中执行动态 SQL 语句

    日期:

    mysqlmysql delimiter $$mysqlmysql CREATE PROCEDURE set_col_value - (in_table VARCHAR(128), - in_column VARCHAR(128), - in_new_value VARCHAR(1000), - in_where VARCHAR(4000))- - BEGIN - DECLARE l_sql VARCHAR(4000); - SET l_sql=CONCAT_ws( , -...

  • 利用 mysql.proc 表来获取基础数据信息

    日期:

    mysqlmysqlmysql DELIMITER //mysqlmysql CREATE FUNCTION myFunction (item_sum DECIMAL(10,2)) - RETURNS DECIMAL(10,1) - BEGIN-- - RETURN ROUND(item_sum,1);- - END - //Query OK, 0 rows affected (0.00 sec)mysql DELIMITER ;mysqlmysql select myFu...

  • MySQL 使用 LOOP 的 ITERATE 语句示例

    日期:

    介绍 MySQL 的 Iterate 迭代语句 mysqlmysqlmysql DELIMITER //mysql CREATE PROCEDURE myProc (IN in_count INT) - BEGIN - DECLARE count INT default 0;- - increment: LOOP - SET count = count + 1; - IF count 20 THEN ITERATE increment; END IF; - I...

  • MySQL 的 LEAVE 语句退出循环

    日期:

    mysqlmysql delimiter $$mysqlmysql CREATE PROCEDURE myProc() - BEGIN - DECLARE i,j INT DEFAULT 1; - outer_loop: LOOP - SET j=1; - inner_loop: LOOP - SELECT CONCAT(i,times, j,is,i*j); - SET j=j+1; - IF j12 THEN - LEAVE inner_loop; - END IF;...

  • MySQL 的存储过程中请求一个锁对象

    日期:

    mysqlmysql delimiter $$mysqlmysql CREATE PROCEDURE myProc() - BEGIN - DECLARE lock_result INT; - IF get_lock(sp_critical_section_lock,60) THEN - - SELECT got lock; - - SET lock_result=release_lock(sp_critical_section_lock); - ELSE - SELECT...

  • MySQL 存储过程的异常处理

    日期:

    mysqlmysql delimiter $$mysqlmysql CREATE PROCEDURE myProc - (p_first_name VARCHAR(30), - p_last_name VARCHAR(30), - p_city VARCHAR(30), - p_description VARCHAR(30), - OUT p_sqlcode INT, - OUT p_status_message VARCHAR(100)) - BEGIN- - - - D...

  • MySQL 存储过程使用 REPEAT 来打开游标读取数据

    日期:

    mysqlmysqlmysql delimiter $$mysql CREATE PROCEDURE myProc (in_customer_id INT) - BEGIN- - DECLARE l_first_name VARCHAR(30); - DECLARE l_id INT; - DECLARE l_city VARCHAR(30); - DECLARE l_department_count INT; - DECLARE no_more_departments I...