mysql_存储过程-判断

本文介绍了MySQL存储过程中IF语句和CASE语句的应用。IF语句用于基本条件判断,而CASE语句则实现了更复杂的条件构造。通过具体示例展示了如何使用这两种语句进行流程控制。

mysql_存储过程-判断:

1、IF语句

IF search_condition THEN statement_list    
    [ELSEIF search_condition THEN statement_list] ...   
    [ELSE statement_list]
END IF 

    IF实现了一个基本的条件构造。如果search_condition求值为真,相应的SQL语句列表被执行。如果没有search_condition匹配,在ELSE子句里的语句列表被执行。statement_list可以包括一个或多个语句。 

举例: 
DELIMITER //
CREATE PROCEDURE p1(IN parameter1 INT)
      BEGIN
      DECLARE variable1 INT;
      SET variable1 = parameter1 + 1;
      IF variable1 = 0 THEN
          INSERT INTO t VALUES (17);
      END IF;
      IF parameter1 = 0 THEN
          UPDATE t SET s1 = s1 + 1;
      ELSE
          UPDATE t SET s1 = s1 + 2;
      END IF;
END //
DELIMITER ;

case语句:

CASE case_value 

      WHEN when_value THEN statement_list    
      [WHEN when_value THEN statement_list] ...    
      [ELSE statement_list]
END CASE 
Or: 
CASE 
      WHEN search_condition THEN statement_list    
      [WHEN search_condition THEN statement_list] ...    
      [ELSE statement_list]

END CASE 


存储程序的CASE语句实现一个复杂的条件构造。如果search_condition 求值为真,相应的SQL被执行。如果没有搜索条件匹配,在ELSE子句里的语句被执行。
举例:
CREATE PROCEDURE p2 (IN parameter1 INT)
BEGIN
     DECLARE variable1 INT;
     SET variable1 = parameter1 + 1;
     CASE variable1
          WHEN 0 THEN INSERT INTO t VALUES (17);
          WHEN 1 THEN INSERT INTO t VALUES (18);
          ELSE INSERT INTO t VALUES (19);
     END CASE;
END//


mysql_sync_table --warehouse hdfs://hdfs-cluster/user/hive/warehouse/ --database ods --table ods_e_file_load_history_paimon --catalog_conf metastore=hive --catalog_conf uri=thrift://master-1-1.c-dcd118dc4de41971.us-west-1.emr.aliyuncs.com:9083,thrift://master-1-2.c-dcd118dc4de41971.us-west-1.emr.aliyuncs.com:9083,thrift://master-1-3.c-dcd118dc4de41971.us-west-1.emr.aliyuncs.com:9083 --mysql_conf hostname=rm-2ev6m0gj8051dsmm4.mysql.rds.aliyuncs.com --mysql_conf port=3306 --mysql_conf username=presto --mysql_conf password='YxESyMpJMmSG3ZqG' --mysql_conf database-name='mex_equipment' --mysql_conf table-name='file_load_history_\d+' --primary_keys 'id,device_key' --mysql_conf server-time-zone='America/Bogota' --mysql_conf scan.startup.mode='timestamp' --mysql_conf scan.startup.timestamp-millis=1672531200000 --table_conf bucket=-1 --table_conf changelog-producer=lookup --table_conf sink.parallelism=4 --table_conf metastore.partitioned-table=true --table_conf file.format=parquet --metadata_column op_ts --ignore_incompatible true --table_conf num-sorted-run.stop-trigger=2147483647 --table_conf snapshot.time-retained='24h' --mysql_conf debezium.min.row.count.to.stream.results=50000 --mysql_conf debezium.tasks.max=4 --mysql_conf debezium.max.queue.size=81920 --mysql_conf debezium.max.batch.size=20480 --mysql_conf debezium.event.deserialization.failure.handling.mode='skip' --mysql_conf debezium.binlog.buffer.size=20480 --mysql_conf debezium.snapshot.fetch.size=40000 --mysql_conf debezium.snapshot.mode='never' --type_mapping tinyint1-not-bool,to-nullable --mysql_conf scan.incremental.snapshot.enabled=true --mysql_conf scan.incremental.snapshot.chunk.size=40000 --mysql_conf scan.snapshot.fetch.size=100000 --mysql_conf debezium.database.serverTimezone='America/Bogota' --mode combined --mysql_conf server-id='19720-19739' 这是paimonCDC,我想指定批处理,从file_load_history_\d+ 的created>'2025-10-01'开始
最新发布
11-20
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值