CREATE DEFINER=wantbpm_uat@10.%.%.% PROCEDURE wantbpm_uat.P_MATERIAL() proc_label:BEGIN DECLARE _st INT(10) DEFAULT UNIX_TIMESTAMP(); DECLARE _cnts1 INT ; select count(*) into _cnts1 from ods.dm_d_material; if _cnts1<1 then SELECT CONCAT('; P_MATERIAL出错,ods数据量异常 ', (UNIX_TIMESTAMP()-_st) ) AS INFO; LEAVE proc_label; -- 跳出存储过程 end if; truncate table wantbpm_uat.MATERIAL; insert into wantbpm_uat.MATERIAL SELECT DIM_MATERIAL_ID, REC_CREATE_DATE, MATERIAL, CONVERT(MATL_NAME, USING utf8), MATL_SPECS, MATL_TYPE, MATL_TYPE_NAME, MATL_GROUP, MATL_GROUP_NAME, PRODUCT_GROUP, PRODUCT_GROUP_NAME, BASIC_UNIT, BASIC_UNIT_NAME, MIN_UNIT, MIN_UNIT_NAME, EXT_MATL_GROUP, EXT_MATL_GROUP_NAME, GROSS_WEIGHT, NET_WEIGHT, SALES_PRICE, MATL_HIER, MATL_HIER1, MATL_HIER1_NAME, MATL_HIER2, MATL_HIER2_NAME, MATL_HIER3, MATL_HIER3_NAME, MATL_HIER4, MATL_HIER4_NAME, MATL_HIER5, MATL_HIER5_NAME, TERM_CATEG, TERM_CATEG_NAME, MATL_COMB, MATL_COMB_NAME, MATL_SCALE, MATL_SCALE_NAME, FUNCTION_CATEG, FUNCTION_CATEG_NAME, MATL_MAIN_CATEG, GENERAL_CATEG_UNIT, GENERAL_CATEG_UNIT_NAME, MATL_SCALE_FI, MATL_NEW, BRAND, BRAND_NAME, REC_CREATOR, REC_UPDATE_DATE, REC_UPDATER, MATL_OLD, MATL_CATEG, MATL_BOX_SIZE, ERP_MATL_PROPERTY1, ERP_MATL_PROPERTY2, ERP_MATL_PROPERTY3, ERP_MATL_PROPERTY4, ERP_MATL_PROPERTY5, ERP_MATL_PROPERTY6, ERP_MATL_PROPERTY7, CDP_MATL_FLAG1, CDP_MATL_FLAG2, CDP_MATL_FLAG3, TAX_RATE, INSERT_DATETIME, UPDATE_DATETIME FROM ods.dm_d_material; SELECT CONCAT( ' P_MATERIAL END - ', (UNIX_TIMESTAMP()-_st) ) AS INFO; END
时间: 2023-09-13 18:03:24 浏览: 46
这是一个 MySQL 存储过程,作用是从 ods.dm_d_material 表中获取物料信息并插入到 wantbpm_uat.MATERIAL 表中。在存储过程中,先判断 ods.dm_d_material 表中是否有数据,如果没有数据则会输出错误信息并跳出存储过程,否则会执行插入操作,并输出执行时间信息。
相关问题
create definer=`root`@`%` proc
您可以使用以下的语法来创建一个以`root`用户为定义者的存储过程:
```sql
CREATE DEFINER=`root`@`%` PROCEDURE procedure_name()
BEGIN
-- 存储过程的逻辑
END;
```
在上述代码中,您需要将`procedure_name`替换为您所创建的存储过程的名称,并在`BEGIN`和`END`之间编写您的存储过程逻辑。请注意,`definer`指定了存储过程的创建者,`root`表示MySQL中的根用户,而`%`表示可以从任何主机连接到数据库服务器。根据您的实际需求,您可以根据具体的用户和主机进行修改。
写一个带CREATE DEFINER = CURRENT_USER PROCEDURE 的mysql存储过程
我可以回答这个问题。下面是一个带CREATE DEFINER = CURRENT_USER PROCEDURE的mysql存储过程的示例:
CREATE DEFINER = CURRENT_USER PROCEDURE my_procedure_name()
BEGIN
-- 在这里编写存储过程的代码
END;
请注意,这只是一个示例,实际的存储过程需要根据具体的需求进行编写。