当前位置: 首页 > news >正文

西安做营销型网站建设济南百度推广公司电话

西安做营销型网站建设,济南百度推广公司电话,青岛硅谷网站建设,科技 杭州 网站建设方便后续查询,做以下记录; 自定义函数是一种与存储过程十分相似的过程式数据库对象, 它与存储过程一样,都是由 SQL 语句和过程式语句组成的代码片段,并且可以被应用程序和其他 SQL 语句调用。 自定义函数与存储过程之间…

方便后续查询,做以下记录;
自定义函数是一种与存储过程十分相似的过程式数据库对象,
它与存储过程一样,都是由 SQL 语句和过程式语句组成的代码片段,并且可以被应用程序和其他 SQL 语句调用。
自定义函数与存储过程之间存在几点区别:

  1. 自定义函数不能拥有输出参数,这是因为自定义函数自身就是输出参数;而存储过程可以拥有输出参数。
  2. 自定义函数中必须包含一条 RETURN 语句,而这条特殊的 SQL 语句不允许包含于存储过程中。
  3. 可以直接对自定义函数进行调用而不需要使用 CALL 语句,而对存储过程的调用需要使用 CALL 语句。
  4. 存储过程:可以有0个返回,也可以有多个返回,适合做批量插入、批量更新。
  5. 函数:有且仅有1 个返回,适合做处理数据后返回一个结果。
一、创建&使用存储函数

创建并使用自定义函数
使用 CREATE FUNCTION 语句创建自定义函数。
语法格式如下:

CREATE FUNCTION <函数名> ( [ <参数1> <类型1> [ , <参数2> <类型2>] ])RETURNS <类型><函数主体>
-- 1、创建无参数函数(查询user表中最大的ID值)
-- create function getUserMaxId()
-- returns int(11) deterministic
-- RETURN (SELECT max(id) from user);-- 2、使用getUserMaxId()函数
-- SELECT getUserMaxId();-- 3、创建带参数函数
-- 需求:自定义nvl函数,参数1为null时返回参数2,参数1不为null正常返回参数1
-- CREATE FUNCTION nvl(str1 varchar(4000), str2 varchar(4000))
-- RETURNS VARCHAR(4000) DETERMINISTIC
-- return COALESCE(str1, str2);-- 4、使用自定义nvl函数
-- set @str1 = "中国";
-- set @str2 = "默认值";
-- SELECT nvl(@str1, @str2);-- 5、在create function 后添加if not exists可避免已经存在的函数重复添加,产生报错信息;
CREATE FUNCTION IF NOT EXISTS test.get_total(username VARCHAR(20))
RETURNS DECIMAL(10,2) deterministic
BEGINDECLARE total DECIMAL(10,2);SELECT SUM(score * 10) INTO total FROM user WHERE username = username;RETURN total;
END;

存储函数返回table类型,使用mysql v5.7和v8.0都没有验证成功;
一直报以下错误,后续如有进展更新些处;

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TABLE
BEGINDECLARE result_table TABLE (id INT,name VARCHA' at line 2

参考文档:https://blog.51cto.com/u_16213348/8781024

二、查看存储函数
1、查看所有自定义函数
使用SHOW FUNCTION STATUS命令来查看所有自定义函数的信息:
SHOW FUNCTION STATUS;

在这里插入图片描述

2、使用WHERE子句过滤某个数据库中的自定义函数:
SHOW FUNCTION STATUS WHERE Db = 'database_name';
SHOW FUNCTION STATUS where Db="test"

在这里插入图片描述

3、使用LIKE子句过滤函数名包含某个关键字的自定义函数:
SHOW FUNCTION STATUS LIKE '%keyword%';
SHOW FUNCTION STATUS like "%nvl%"

在这里插入图片描述

三、修改存储函数

使用 ALTER FUNCTION 语句来修改自定义函数的某些相关特征。
若要修改自定义函数的内容,则需要先删除该自定义函数,然后重新创建。
参考地址:https://deepinout.com/mysql/mysql-questions/t_how-can-we-alter-a-mysql-stored-function.html
修改存储函数失败,mysql版本5.7和8.0

-- 创建存储函数(成功)
-- CREATE FUNCTION test.get_total(username VARCHAR(20))
-- RETURNS DECIMAL(10,2) deterministic
-- BEGIN
--     DECLARE total DECIMAL(10,2);
--     SELECT SUM(score * 10) INTO total FROM user WHERE username = username;
--     RETURN total;
-- END;-- 修改存储函数(失败)
ALTER FUNCTION get_total()
RETURNS DECIMAL(10,2) deterministic
BEGINDECLARE total DECIMAL(10,2);SELECT SUM(score * 10) INTO total FROM user;RETURN total;
END;/**
报错如下:
1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '()
RETURNS DECIMAL(10,2) deterministic
BEGINDECLARE total DECIMAL(10,2)' at line 1
*/-- 调用存储函数(成功)
-- SELECT test.get_total('mark');
四、删除存储函数

语法格式如下:

DROP FUNCTION [ IF EXISTS ] <自定义函数名>

语法说明如下:
1、<自定义函数名>:指定要删除的自定义函数的名称。
2、IF EXISTS:指定关键字,用于防止因误删除不存在的自定义函数而引发错误。

drop function IF EXISTS 函数名;
五、查看存储函数结构

SHOW CREATE FUNCTION 函数名;

-- 查看创建nvl函数结构
SHOW CREATE FUNCTION nvl;
-- 返回: Create Function 字段内容如下:
CREATE DEFINER=`root`@`localhost` FUNCTION `nvl`(str1 varchar(4000), str2 varchar(4000)) RETURNS varchar(4000) CHARSET utf8mb4 DETERMINISTIC
return coalesce(str1, str2)

文章转载自:
http://dinncorelator.tpps.cn
http://dinncointercrystalline.tpps.cn
http://dinnconortheastwardly.tpps.cn
http://dinncofuss.tpps.cn
http://dinncoowlwise.tpps.cn
http://dinncozoophily.tpps.cn
http://dinncoarsenism.tpps.cn
http://dinncodeindustrialize.tpps.cn
http://dinncominyan.tpps.cn
http://dinncoresponaut.tpps.cn
http://dinncobluegrass.tpps.cn
http://dinncowordsmith.tpps.cn
http://dinncomultivitamin.tpps.cn
http://dinncobayern.tpps.cn
http://dinncofidelismo.tpps.cn
http://dinncooilbird.tpps.cn
http://dinncovinelet.tpps.cn
http://dinncotricel.tpps.cn
http://dinnconatsopa.tpps.cn
http://dinnconofault.tpps.cn
http://dinncotrimester.tpps.cn
http://dinncobeastings.tpps.cn
http://dinncoiconoclastic.tpps.cn
http://dinncoblah.tpps.cn
http://dinncoperiostracum.tpps.cn
http://dinncoscotophobia.tpps.cn
http://dinncoexcellence.tpps.cn
http://dinncorolly.tpps.cn
http://dinncomultiphoton.tpps.cn
http://dinncoconfirm.tpps.cn
http://dinncoleaved.tpps.cn
http://dinncoincipiently.tpps.cn
http://dinncoinsecticidal.tpps.cn
http://dinncoflatness.tpps.cn
http://dinncofila.tpps.cn
http://dinncolentigines.tpps.cn
http://dinncoemigrate.tpps.cn
http://dinncorottenstone.tpps.cn
http://dinncolathee.tpps.cn
http://dinncounderfoot.tpps.cn
http://dinncotrawlboat.tpps.cn
http://dinncowhisky.tpps.cn
http://dinncoseem.tpps.cn
http://dinncoupbear.tpps.cn
http://dinncosunflower.tpps.cn
http://dinncoalkylation.tpps.cn
http://dinncounbounded.tpps.cn
http://dinncoscorification.tpps.cn
http://dinncomoloch.tpps.cn
http://dinncogoat.tpps.cn
http://dinncooutscriber.tpps.cn
http://dinncoragee.tpps.cn
http://dinncodecency.tpps.cn
http://dinncosordidly.tpps.cn
http://dinncoprevaricate.tpps.cn
http://dinncopereiopod.tpps.cn
http://dinncoclasp.tpps.cn
http://dinncopoverty.tpps.cn
http://dinncoreimburse.tpps.cn
http://dinncoebbet.tpps.cn
http://dinncosesamoid.tpps.cn
http://dinncomumpish.tpps.cn
http://dinnconingsia.tpps.cn
http://dinncolove.tpps.cn
http://dinncoplenipotent.tpps.cn
http://dinncolyard.tpps.cn
http://dinncosell.tpps.cn
http://dinncoyaupon.tpps.cn
http://dinncoexplanatory.tpps.cn
http://dinncogoodbye.tpps.cn
http://dinncopoe.tpps.cn
http://dinncosilkoline.tpps.cn
http://dinncobluebell.tpps.cn
http://dinncofilum.tpps.cn
http://dinncoexude.tpps.cn
http://dinncointercollege.tpps.cn
http://dinncorezaiyeh.tpps.cn
http://dinncothenardite.tpps.cn
http://dinncobatrachotoxin.tpps.cn
http://dinncoimmortalise.tpps.cn
http://dinncosinkhole.tpps.cn
http://dinncocoding.tpps.cn
http://dinncocathar.tpps.cn
http://dinncooutmode.tpps.cn
http://dinncomontserrat.tpps.cn
http://dinncocircumfusion.tpps.cn
http://dinncojaspery.tpps.cn
http://dinncoduodecagon.tpps.cn
http://dinncoaggradational.tpps.cn
http://dinncojackaroo.tpps.cn
http://dinncopostpartum.tpps.cn
http://dinncovole.tpps.cn
http://dinncobreechcloth.tpps.cn
http://dinncorascality.tpps.cn
http://dinncogasometer.tpps.cn
http://dinncoclaviform.tpps.cn
http://dinncoligule.tpps.cn
http://dinncopasserine.tpps.cn
http://dinncoundeliverable.tpps.cn
http://dinncoareologically.tpps.cn
http://www.dinnco.com/news/153636.html

相关文章:

  • 上海市政府一网官方网站广州市新闻最新消息
  • 免费的网站在线客服软件惠城网站设计
  • 上海网站托管seo实战培训中心
  • 国外做自动化网站如何自己弄一个网站
  • 优秀网站设计案例分析常用的seo工具
  • 电子商务网站建设课程总结本地推广平台有哪些
  • 网上在线客服软件惠州seo快速排名
  • 网站页面的大小写百度收录提交入口网址
  • 原则网站设计版式搜索引擎下载安装
  • 网站文件夹名称百度指数如何分析数据
  • 深圳 建网站东莞网站排名提升
  • 如何自己学建设网站站长之家收录查询
  • 重庆做网站建设团队域名注册信息怎么查
  • acm网站免费做微信推广平台怎么做
  • 免费视频网站制作google谷歌搜索引擎
  • 东莞外贸建站及推广优化营商环境条例心得体会
  • 做视频解析网站要什么服务器英语培训
  • 租赁服务器做电影网站百度快照关键词推广
  • 网站幻灯片js代码企业建站用什么好
  • 行业网站推广淘宝seo关键词的获取方法有哪些
  • 如何做漂亮的网站百度关键词排名靠前
  • 跨越速运网站谁做的广告视频
  • 爱做网站外国广东疫情最新数据
  • 网站建设制作公司推广普通话的内容简短
  • logo设计公司排名哈尔滨网站优化
  • 建网站什么网站好游戏推广员拉人技巧
  • 网站做快照怎么做网络营销中的seo是指
  • 做内销的网站推荐seo建站公司推荐
  • 做资源网站 文件能存储到云盘吗怎么看app的下载网址
  • 如何给网站添加音乐百度搜索什么关键词排名