前些日子客户过来个需求,是要把以前所有DB里面记录用户消费coinlog的表做统一成一样的字段(以前由于DB很多LOG表很乱)。上个礼拜把设计书写好后,今天开始写存储过程。很久没有写存储过了,上午在网上做功课下午写,还好有公司前辈高手指导算是在下班前完成了。把写的存储过程的代表性的一个记录一下,以便以后温习只用。
作业内容:将某DB的原来coinLog表内的某些字段根据条件复制到新表中,每一天复制前一天产生的数据,具体procedure如下:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
-- =============================================
-- Author: Jiang
-- create Date: 2011/05/09
-- Description: 邦楽フルプラスEZコインログ出力
-- =============================================
ALTER PROCEDURE [dbo].[CopyTo_CoinEventLog_FullpE]
AS
BEGIN
BEGIN TRAN
SET NOCOUNT ON;
INSERT
CoinEventLog_FullpE
(
uid, --ユーザーID
credit_coin, --イベントコイン
rest_coin, --残りコイン
event_cd, --イベントコード
event_desc, --イベント詳細記述
upd_nm, --レコード更新者
upd_pg, --レコード更新プログラム
upd_dt --レコード更新時間
)
SELECT
uid,
credit_coin,
rest_coin,
CASE
WHEN [event_cd] = 'give' OR [event_cd] = 'change' THEN 'give'
WHEN [event_cd] = 'use' THEN 'use'
WHEN [event_cd] = 'lost' THEN 'lost'
WHEN [event_cd] = 'takeover' THEN 'takeover'
WHEN [event_cd] = 'campaign' THEN 'campaign'
ELSE '' -- 'give','use','lost','takeover','change',campaign以外の値なら、''に設定する
END,
event_desc,
upd_nm,
upd_pg,
upd_dt
FROM
fullp_e.dbo.CoinEventLog
--前日の1日分のコインログを抽出する
WHERE upd_dt >= CONVERT(varchar(10), getdate() - 1, 111)
and upd_dt < CONVERT(varchar(10), getdate(), 111)
IF @@error<>0
BEGIN
rollback tran
return
END
COMMIT TRAN
END
分享到:
相关推荐
根据提供的文件内容,本篇实验报告主要围绕MySQL数据库中存储过程和函数的应用,涵盖了创建存储过程、函数、游标以及异常处理等高级特性。下面将详细解析报告中的每个知识点。 1. 创建存储过程 存储过程是一种在...
在MySQL中,CREATE PROCEDURE用于定义存储过程,@符号开头的变量是局部变量,AS关键字标志着过程体的开始,而BEGIN和END则定义了过程的执行逻辑。通过执行存储过程,可以简化复杂的操作,提高代码的可读性和维护性。...
暑假作业通常涉及到学习的巩固和深化,对于MySQL来说,可能涵盖了一系列的主题,包括基础语法、数据类型、表的创建与管理、查询操作、索引、视图、存储过程、触发器以及数据库的安全性等方面。下面将对这些知识点...
### MySQL存储过程知识点详解 #### 一、创建数据库与表结构 在MySQL中,我们首先需要创建一个数据库,本例中的数据库名为`test_pro`。接下来,在该数据库中创建两个表:`admin`和`beauty`。 1. **创建数据库**: ...
MySQL 作业 3 的主要目的是通过四个任务练习 MySQL 数据库的基本操作和管理,包括用户管理、视图创建、事务处理和存储过程等。 任务 1: 创建用户和授予权限 在 MySQL 中,创建用户可以使用 `CREATE USER` 语句,...
2. 存储过程(Stored Procedure):预编译的SQL代码集合,可以封装复杂的业务逻辑,提高效率和安全性。 3. 触发器(Trigger):在特定数据库事件(如INSERT, UPDATE, DELETE)发生时自动执行的程序,常用于实现业务...
1、在mysql 中建立一个数据库 test1 语句:create database test1 2、创建表examinfo create table examinfo( id int ... 4 创建存储过程test CREATE PROCEDURE test () BEGIN update examinfo SET endtime = now() WH
在数据库管理中,存储过程(Stored Procedure)是一种预编译的SQL代码集合,它封装了特定的数据库操作,可以提高数据库应用的性能和安全性。在处理大量数据时,特别是进行分页查询,存储过程有着显著的优势。本篇将...
8. **存储过程(PROCEDURE)和函数(FUNCTION)**:可重用的 SQL 代码块,可以接收参数并返回结果。它们提高了代码的组织性和效率。 9. **事务(TRANSACTION)**:一组 SQL 操作,要么全部成功,要么全部回滚。这...
在本篇中,我们将深入探讨如何利用MySQL创建存储过程,以完成第4周的作业任务。存储过程是数据库中预编译的SQL语句集合,它们可以被多次调用,提高了代码的重用性和效率。MySQL中的存储过程分为以下几个部分: 1. *...
9. **存储过程与函数**:定义和调用存储过程(PROCEDURE)和用户自定义函数(FUNCTION),以封装和重用SQL代码。 10. **事务处理**:理解ACID属性(原子性、一致性、隔离性、持久性),并学会使用BEGIN、COMMIT、...
- `PROCEDURE`:创建存储过程,封装一组SQL语句。 - `FUNCTION`:创建用户自定义函数,返回一个值。 - `DECLARE`:声明变量和游标。 三、TSQL中的异常处理 TSQL提供`TRY...CATCH`结构来捕获和处理运行时错误,...
这里我们将深入探讨几种常用的方法,包括作业(Jobs)和存储过程(Stored Procedures),以及如何在不同的数据库系统中实现这些方法。 一、SQL Server 作业(SQL Server Agent Jobs) 在SQL Server中,可以利用SQL ...
此外,SQL还有许多高级特性,如视图(VIEW)、存储过程(STORED PROCEDURE)、触发器(TRIGGER)和事务(TRANSACTION)。视图可以被视为虚拟表,其数据来源于一个或多个表的查询结果。存储过程是预编译的SQL语句集合...
设计中涉及到的SQL语句包括CREATE TABLE(创建表)、TRIGGER(创建触发器)、PROCEDURE(创建存储过程)等,这些都是数据库管理和开发的基础工具。 这个物料管理系统数据库设计的关键点在于正确捕捉业务需求,合理...
- 通过“Execute SQL Script”步骤执行存储过程,增强灵活性。 10. **字符集** - 字符集配置影响数据的编码和解码。 - 正确设置字符集可避免乱码问题。 11. **预定义时间维** - 时间维用于跟踪数据随时间的...
MySQL是目前使用最广泛的开源关系数据库管理系统,其核心特性包括事务支持、存储过程、触发器等。MySQL索引分为多种类型,包括普通索引、唯一索引、全文索引等。不适合建立索引的情形包括数据量小、更新频繁的表字段...
通过OMS,商家可以实时了解订单进度,提高作业效率,降低成本,增强市场竞争力。 2. **订单处理流程**:订单处理包括订单接收、确认、状态管理(如取消、付款、发货等状态),以及订单出库和查询。这些功能旨在提供...
同时,对YARN(Yet Another Resource Negotiator)的资源调度和作业监控有深入了解,可以优化集群资源分配。 3. **Storm与RPC**:掌握Storm流处理技术,用于实时数据处理。对分布式RPC(Remote Procedure Call)有...