`

MySQL、SqlServer、postgresql自定义函数和存储过程

阅读更多
一、MySQL
1、MySQL自定义函数及调用
-- 报错his function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logg,解决办法
set global log_bin_trust_function_creators=TRUE;
-- 自定义函数
CREATE FUNCTION mytest (a INT, b INT) RETURNS INT
BEGIN
RETURN a + b;
END
-- 调用自定义函数
SELECT mytest(4,2);
 
2、MySQL自定义存储过程及调用
-- 创建自定义存储过程
CREATE PROCEDURE myPro(a INT,b INT)
BEGIN
INSERT INTO `mg`.`mg_favorites` (
`regnumber`,
`type`,
`object_id`,
`ctime`
)
VALUES
(
a,
b,
'12784',
'1471871232'
);
END
-- 调用自定义存储过程
CALL myPro(1,2);
 
二、SqlServer
1、SqlServer自定义函数及调用
-- 自定义函数
CREATE FUNCTION dbo.mytest (@a INT ,@b INT) RETURNS INT AS
BEGIN
RETURN @a +@b
END
 
-- 调用自定义函数
SELECT dbo.mytest(1,2);
 
2、SqlServer自定义存储过程及调用
-- 自定义存储过程
CREATE PROCEDURE dbo.insertActiveData (@dataCount INT) AS
BEGIN
DECLARE
@i INT ;
SET @i = 0 ;
WHILE @i < @dataCount
BEGIN
INSERT INTO log_DeviceInfo (
[Idfa],
[Idfa_MD5],
[IsDel],
[CreateDate],
[EditDate],
[ClientIP],
[OsType],
[PhoneType],
[SystemVersion],
[StartDate],
[Idfa_UP_MD5],
[Imei],
[Channel]
)
VALUES
(
'868029027522895',
'9FD47F63EADB66590A531884215F6212',
'0',
'2018-02-05 19:10:57.920',
'2018-02-05 19:10:57.920',
'112.227.78.1',
'android',
'Redmi+Note+3',
'5.0.2',
'2018-02-05 19:07:54.000',
'9FD47F63EADB66590A531884215F6212',
'868029027511111',
'WHAN_XM'
) ;
SET @i = @i + 1 ;
END
END
 
-- 调用存储过程
EXECUTE dbo.insertActiveData 10000 ;
 
三、postgresql
1、postgresql自定义函数及调用
-- 创建自定义函数
CREATE
OR REPLACE FUNCTION test_function (INTEGER) RETURNS INTEGER AS
$$
DECLARE
b_count ALIAS FOR $1 ;
BEGIN
while b_count > 0 loop INSERT INTO "public"."call_log" (
"app_id",
"platform_id",
"call_id",
"type",
"extension_number",
"use_long",
"use_time",
"recording_file",
"calling_number",
"called_number",
"province",
"city",
"editor",
"edit_time",
"creator",
"create_time",
"app_account_id"
)
VALUES
(
'19',
'1',
'1505722054.5600903',
'1',
'2009',
NULL,
'2017-09-18 16:11:25.466',
NULL,
'28306099',
'15088052151',
'广东',
'广州',
'19',
'2017-09-18 16:44:14.801',
'19',
'2017-09-18 16:07:48.097615',
NULL
) ;
b_count := b_count-1 ;
END loop ;
RETURN b_count ;
END;
$$
LANGUAGE plpgsql;
-- 调用自定义函数
SELECT test_function (100000);
 
分享到:
评论

相关推荐

    oracle,sqlserver及mysql对比

    Oracle、SQL Server 及 MySQL 对比 Oracle、SQL Server 及 MySQL 是目前最流行的三大关系数据库管理系统,各有其优缺点。本文将从表空间、查询语句、事务、分区表和分区索引、优缺点等方面对三者进行比较。 表空间...

    Sqlserver、Oracle、MySql、PostgreSql、SqlLite数据库差异

    - **Sqlserver**、**Oracle**、**MySql** 和 **PostgreSql** 支持存储过程。存储过程是一种预编译的SQL代码块,能够提高性能并减少网络流量。**SqlLite** 目前不支持存储过程功能。 #### 四、函数支持 - **Sql...

    数据库转换工具MySQL 转为SqlServer 脚本

    - **生成和执行脚本**:最后,工具会生成SQL Server兼容的创建数据库、表、索引、视图、存储过程等的脚本,这些脚本在SQL Server上执行以重建数据库结构。 5. **数据迁移**:除了结构转换,还需要将MySQL中的数据...

    在sqlserver2008r2版本中实现正则表达式

    首先,SQL Server 2008 R2的标准版并未内置正则表达式函数,这与某些其他数据库系统(如PostgreSQL或MySQL)不同。但是,我们可以借助T-SQL中的存储过程或者一些外部工具来弥补这个功能的缺失。 1. **使用 CLR ...

    PostgreSQL 8.2,Oracle 10g,SQL Server 2005,MYSQL 5.1 脚本例子

    标题 "PostgreSQL 8.2,Oracle 10g,SQL Server 2005,MYSQL 5.1 脚本例子" 提供了关于四个不同数据库管理系统(DBMS)——PostgreSQL 8.2、Oracle 10g、SQL Server 2005 和 MySQL 5.1 的SQL脚本示例。这些脚本通常用于...

    PostgreSQL 8.2,Oracle 10g,SQL Server 2005,MYSQL 5.1 脚本规范

    同时,MySQL支持触发器和存储过程,但其语法结构与Oracle和SQL Server有所不同。 在编写这些数据库系统的脚本时,开发者需要考虑以下几点: 1. **SQL标准兼容性**:虽然所有这些系统都基于SQL标准,但每个都有自己...

    Navicat Premium11.28 for mysql,sqlserver,oracle,sqlite,postgresql,mariaDB

    在SQL Server上,它支持T-SQL语法,提供触发器、存储过程、函数的创建和管理,同时具备数据比较和同步功能。在Oracle方面,Navicat支持PL/SQL编程,能进行复杂的数据库设计和管理。对于SQLite,它则简化了小型数据库...

    php连接sql server插件

    标签"php链接mssql"中的"MSSQL"是SQL Server的缩写,表明讨论的是PHP与SQL Server的连接,而不是其他类型的数据库,如MySQL或PostgreSQL。 在压缩包文件名"phpmssql"中,尽管没有明确指出具体文件,但可以理解为这...

    数据库管理工具 支持MYSQL MSSQL PostgreSQL SQLIte ETCD

    在提供的标题和描述中,提到了几种主要的数据库系统:MYSQL(MySQL)、MSSQL(Microsoft SQL Server)、PostgreSQL和SQLite,以及ETCD,这是一个分布式键值存储系统,通常用作服务发现和配置管理。接下来,我们将...

    SQLServer2008存储引擎

    1. **SQL Server 存储引擎细节**:SQL Server 的存储引擎是其核心组成部分之一,负责数据的物理存储和检索。包括 GAM、SGAM 和 PFS 等机制用于管理数据页的状态和使用情况。 2. **数据页的存储格式**:数据页由多...

    SQLSERVER drive for php 5.3.54

    3. **支持SQL Server特性**:包括对存储过程、事务、XML类型、Spatial数据类型、以及SQL Server特有的函数和操作的支持。 4. **安全连接**:支持SSL加密,确保数据传输的安全性。 5. **错误处理和调试**:提供详细的...

    SQL_SERVER应用与开发范例宝典_12357672.part2

    涉及到SQLServer2000、SQLServer2005、Access、Oracle10g、MySql5.0和Postgresql8.2等6种数据库语言,内容包括SQL语言基础、常规数据查询、高级数据过滤、字符串查询、日期函数、日期函数、数据排序、聚集函数与分组...

    SQL Server数据迁移至PostgreSQL出错的解释以及解决方案

    在进行数据库迁移的过程中,尤其是从SQL Server到PostgreSQL这样的跨平台迁移,经常会遇到各种兼容性问题。本篇文章将深入探讨一个具体的错误:“invalid byte sequence for encoding \"UTF8\": 0x00”,并提供相应...

    aquila:迁移工具,目标是Oracle,MySQL,SqlServer到PostgreSQL单项迁移,PostgreSQL和大数据平台Hive,Hbase,Impala等的双向迁移

    此外,迁移过程中还要考虑SQL Server特有的函数和存储过程的兼容性问题。 四、PostgreSQL到大数据平台迁移 Aquila的双向迁移功能意味着它也能将PostgreSQL的数据迁移到大数据环境。例如,它可以将PostgreSQL的数据...

    通用的存储过程sql分页查询语句

    1. ROW_NUMBER()函数(适用于支持窗口函数的数据库,如SQL Server、PostgreSQL等): 这种方法通过窗口函数ROW_NUMBER()为每行分配一个唯一的序列号,然后根据需要的页码选择特定范围的行。以下是一个简单的例子: ...

    JSON+Support+in+PostgreSQL%2C+MySQL%2C+MongoDB%2C+and+SQL+Server.pdf

    在本篇博客中,将讨论几个流行的数据库系统——PostgreSQL、MySQL、MongoDB和SQL Server——对JSON的支持情况。我们将通过比较来了解各个数据库如何实现对JSON的支持,包括它们提供了哪些功能以及操作符。 首先,让...

    Navicat Premium 11.0.16

    结合了其 Navicat 成员的功能的 Navicat Premium 支持大份 MySQL SQL Server SQLite Oracle 和 PostgreSQL 的功能 包括存储过程 事件 触发器 函数 视图等 Navicat Premium 能使你简单并快速地在各种数据库系统间...

    利用ADODB实现SQLSERVER数据库访问 (1).pdf

    "利用ADODB实现SQLSERVER数据库访问" 本文主要介绍了如何使用ADODB来实现SQL SERVER数据库的访问。ADODB(Active Data Objects Data Base)是一种PHP存取数据库的中间函数组件,可以支持多种数据库,如MySQL、...

    SQL编程艺术:存储过程与函数的精妙之别

    常见的关系型数据库有MySQL、PostgreSQL、Oracle和SQL Server。 2. **非关系型数据库**(NoSQL):不使用表格形式存储数据,而是使用文档、键值对、宽列存储或图形数据库的形式。例如MongoDB、Cassandra、Redis和...

Global site tag (gtag.js) - Google Analytics