sqlserver调用mysql函数_MySQL、SqlServer、postgresql自定义函数和存储过程

本文详细介绍了MySQL、SQLServer和postgresql中创建与调用自定义函数及存储过程的方法,包括MySQL的DETERMINISTIC问题解决、SQLServer的存储过程示例以及postgresql的PL/pgSQL函数实现。
摘要由CSDN通过智能技术生成

一、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);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值