当前位置:首页 » 存储配置 » mysql存储过程命名

mysql存储过程命名

发布时间: 2025-06-01 18:55:06

⑴ mysql存储过程名区分大小写吗

MySQL存储过程的名字区分大小写,这一点非常重要。在调用存储过程时,如果名字不匹配,系统将会报错。这是因为MySQL解析器在识别存储过程名称时会根据系统的配置和设置来区分大小写。在某些数据库系统中,如Windows系统下默认情况下,MySQL的解析器并不区分大小写,但在Linux或macOS系统中,默认情况下则会区分大小写。

因此,为了确保存储过程能够正确调用,开发人员需要在定义和调用存储过程时严格保持名称的一致性,包括大小写。例如,如果你定义了一个名为`GetUser`的存储过程,那么在调用时也必须使用`GetUser`,而不能误写为`getuser`或`GETUSER`。

此外,值得注意的是,不同的MySQL安装和配置可能会有不同的大小写敏感设置。为了适应这些差异,建议始终使用统一的命名规范,尤其是在团队开发环境中。此外,使用全小写或全大写命名存储过程,可以避免由于系统配置不同导致的大小写不匹配问题。

总的来说,存储过程名称的大小写一致性是保证数据库系统稳定运行的关键因素之一。对于开发人员来说,了解这一点并正确应用,可以避免许多潜在的问题。

在实际操作中,如果遇到存储过程调用失败的情况,首先应该检查存储过程的定义名称和调用名称是否完全一致,包括大小写。只有确保这一点,才能顺利调用存储过程。

⑵ mysql 存储过程

.关于MySQL的存储过程

存储过程是数据库存储的一个重要的功能,但是MySQL在5.0以前并不支持存储过程,这使得MySQL在应用上大打折扣。好在MySQL 5.0终于开始已经支持存储过程,这样即可以大大提高数据库的处理速度,同时也可以提高数据库编程的灵活性。

MySQL存储过程的创建

(1).格式

MySQL存储过程创建的格式:CREATE PROCEDURE过程名([过程参数[,...]])
[特性...]过程体

这里先举个例子:

  • mysql>DELIMITER//

  • mysql>CREATEPROCEDUREproc1(OUTsint)

  • ->BEGIN

  • ->SELECTCOUNT(*)INTOsFROMuser;

  • ->END

  • ->//

  • mysql>DELIMITER;


  • 注:
  • (1)这里需要注意的是DELIMITER //和DELIMITER ;两句,DELIMITER是分割符的意思,因为MySQL默认以";"为分隔符,如果我们没有声明分割符,那么编译器会把存储过程当成SQL语句进行处理,则存储过程的编译过程会报错,所以要事先用DELIMITER关键字申明当前段分隔符,这样MySQL才会将";"当做存储过程中的代码,不会执行这些代码,用完了之后要把分隔符还原。

    (2)存储过程根据需要可能会有输入、输出、输入输出参数,这里有一个输出参数s,类型是int型,如果有多个参数用","分割开。

    (3)过程体的开始与结束使用BEGIN与END进行标识。

⑶ 详解 MySQL 数据库对象命名规范、对象设计规范、SQL 使用规范

数据库对象命名规范

数据库对象包括表、索引、视图、图表、默认值、规则、触发器、存储过程和用户。命名规范要求使用具有意义的英文词汇,词汇间以下划线分隔。命名只允许使用英文字母、数字和下划线,且以英文字母开头。应避免使用MySQL保留字,如"backup"、"call"、"group"等。所有数据库对象应使用小写字母。

数据库命名规范

数据库命名应尽量不超过30个字符,以项目名称加代表库含义的简写表示。创建数据库时应添加默认字符集和校对规则子句,推荐使用UTF8或UTF8MB4。命名应保持统一性,使用小写。

表命名规范

表名通常以"t_"开头,表示table。命名规则为"t + 模块简写 + 表简写",例如教育信息表命名为"t_user_einfo"。临时表命名规则为"temp_模块_表_日期",如"temp_user_einfo_20210719"。备份表命名规则为"bak_模块_表_日期",如"bak_user_einfo_20210719"。同一模块的表尽可能使用相同的前缀,表名称应表达含义,并且以小写字母表示,长度不宜超过30个字符。

字段命名规范

字段命名需要表示实际含义的英文单词或简写,单词间用下划线分隔,例如"service_ip"、"service_port"。各表间相同意义的字段必须同名,如"create_time"。应使用小写,长度不超过30个字符。

索引命名规范

唯一索引使用"uni + 字段名"命名,例如"uni_uid"。非唯一索引使用"idx + 字段名",如"idx_uname_mobile"。多个单词间使用下划线分隔。索引名应保持在50个字符以内,组合索引的字段不宜太多。对于多单词组成的列名,应采用缩写形式,如"test_contact表member_id和friend_id上的组合索引"命名为"idx_mid_fid"。

视图命名规范

视图名以"v"开头,表示view,结构为"v + 视图内容含义缩写"。如果视图仅来源于单个表,则为"v + 表名"。如果视图由多个表关联产生,则使用"v + 表名间用下划线连接"。视图名长度尽量不超过30个字符,超过则取简写。严格限制开发人员创建视图,命名应保持小写。

存储过程命名规范

存储过程名以"sp"开头,多个单词间使用下划线连接,如"sp_add_user"。输入参数以"i_"开头,输出参数以"o_"开头。命名应保持小写,长度不超过30个字符。

函数命名规范

函数名以"func"开始,多个单词间使用下划线连接,如"func_calculate_total"。函数命名中应体现其功能。函数名长度不超过30个字符,命名应保持小写。

触发器命名规范

触发器以"trig"开头,描述触发器所加的表。触发器名长度尽量不超过30个字符,后缀可表示触发条件,如"_i"表示插入触发,"_u"表示更新触发,"_d"表示删除触发。命名应保持小写。

约束命名规范

唯一约束使用"uk_表名称_字段名",例如"uk_user_name"。外键约束使用"fk_表名_表名",子表名和父表名间用下划线分隔。非空约束默认非空且给出默认值。命名应保持小写。

用户命名规范

生产使用的用户命名格式为"code_应用"。只读用户命名规则为"read_应用"。命名应保持小写。

数据库对象设计规范

存储引擎选择:无特殊需求时,必须使用innodb存储引擎。字符集选择:无特殊要求时,推荐使用utf8或utf8mb4。表设计规范:减少不同应用间的关联,避免使用外键,确保组件独立性。表设计应针对每个组件的业务进行,表必须有主键,字段应表示单一含义,避免重复列,避免复杂数据类型,确保join字段数据类型一致。文本存储:使用独立的表,通过主键关联。定期删除过期数据,通过分表解决,如使用2/8法则。单表字段数限制在50个以内,物理大小控制在16GB,数据行数控制在2000W以内。

字段设计规范:整型字段使用UNSIGNED INT,动态长度字符串使用VARCHAR,TEXT类型用于大文本数据,长度超过20000个字符使用TEXT,精确浮点数使用DECIMAL,避免使用BLOB类型。字段默认非空且提供默认值,自增字段为整型且为UNSIGNED INT或BIGINT。

索引设计规范:索引创建在区分度较高的列上,选择性计算方式为:count(distinct c_name)/count(*)。遵循最左前缀原则,避免使用外键,Text类型字段使用前缀索引。单表索引数量控制在5个以内,ORDER BY、GROUP BY、DISTINCT字段在索引后形成覆盖索引。联合索引应按照最左匹配原则,避免索引失效,合理使用联合索引和前缀索引。

约束设计规范:主键为有序且无意义的自增序列,唯一性约束创建唯一约束索引。禁止更新主键字段,避免创建外键约束,所有字段非空,所有字段有默认值。

SQL使用规范:避免使用SELECT *,使用明确的字段列表进行查询。禁止全表扫描,确保查询具有明确的过滤条件。分页查询需带有排序条件。使用IN/UNION替换OR,避免使用模糊前缀查询,尽量避免子查询,使用JOIN操作优化。

⑷ mysql存储过程怎么写


MySQL 存储过程是一些 SQL 语句的集合,比如有的时候我们可能需要一大串的 SQL 语句,或者说在编写 SQL 语句的过程中还需要设置一些变量的值,这个时候我们就完全有必要编写一个存储过程。下面我们来介绍一下如何创建一个存储过程。
语法格式:
可以使用 CREATE PROCEDURE 语句创建存储过程。
语法格式如下:
CREATE PROCEDURE <过程名> ( [过程参数[,?] ] ) <过程体>
[过程参数[,?] ] 格式
[ IN | OUT | INOUT ] <参数名> <类型>语法说明如下:
1) 过程名
存储过程的名称,默认在当前数据库中创建。若需要在特定数据库中创建存储过程,则要在名称前面加上数据库的名称,即 db_name.sp_name。需要注意的是,名称应当尽量避免选取与 MySQL 内置函数相同的名称,否则会发生错误。
2) 过程参数
存储过程的参数列表。其中,<参数名>为参数名,<类型>为参数的类型(可以是任何有效的 MySQL 数据类型)。当有多个参数时,参数列表中彼此间用逗号分隔。存储过程可以没有参数(此时存储过程的名称后仍需加上一对括号),也可以有 1 个或多个参数。

MySQL 存储过程支持三种类型的参数,即输入参数、输出参数和输入/输出参数,分别用 IN、OUT 和 INOUT 三个关键字标识。其中,输入参数可以传递给一个存储过程,输出参数用于存储过程需要返回一个操作结果的情形,而输入/输出参数既可以充当输入参数也可以充当输出参数。需要注意的是,参数的取名不要与数据表的列名相同,否则尽管不会返回出错信息,但是存储过程的 SQL 语句会将参数名看作列名,从而引发不可预知的结果。
3) 过程体
存储过程的主体部分,也称为存储过程体,包含在过程调用的时候必须执行的 SQL 语句。这个部分以关键字 BEGIN 开始,以关键字 END 结束。若存储过程体中只有一条 SQL 语句,则可以省略 BEGIN-END 标志。

在存储过程的创建中,经常会用到一个十分重要的 MySQL 命令,即 DELIMITER 命令,特别是对于通过命令行的方式来操作 MySQL 数据库的使用者,更是要学会使用该命令。

在 MySQL 中,服务器处理 SQL 语句默认是以分号作为语句结束标志的。然而,在创建存储过程时,存储过程体可能包含有多条 SQL 语句,这些 SQL 语句如果仍以分号作为语句结束符,那么 MySQL 服务器在处理时会以遇到的第一条 SQL 语句结尾处的分号作为整个程序的结束符,而不再去处理存储过程体中后面的 SQL 语句,这样显然不行。为解决这个问题,通常可使用 DELIMITER 命令将结束命令修改为其他字符。

语法格式如下:
DELIMITER $$语法说明如下:$$ 是用户定义的结束符,通常这个符号可以是一些特殊的符号,如两个“?”或两个“¥”等。当使用 DELIMITER 命令时,应该避免使用反斜杠“”字符,因为它是 MySQL 的转义字符。
在 MySQL 命令行客户端输入如下SQL语句。
mysql > DELIMITER ??成功执行这条 SQL 语句后,任何命令、语句或程序的结束标志就换为两个问号“??”了。

若希望换回默认的分号“;”作为结束标志,则在 MySQL 命令行客户端输入下列语句即可:
mysql > DELIMITER ;注意:DELIMITER 和分号“;”之间一定要有一个空格。在创建存储过程时,必须具有 CREATE ROUTINE 权限。可以使用 SHOW PROCEDURE STATUS 命令查看数据库中存在哪些存储过程,若要查看某个存储过程的具体信息,则可以使用 SHOW CREATE PROCEDURE <存储过程名>。
创建不带参数的存储过程
存储过程的作用是从学生成绩信息表中查询学生的成绩信息,输入的 SQL 语句和执行过程如下所示。
mysql> DELIMITER //
mysql> CREATE PROCEDURE ShowStuScore()
-> BEGIN
-> SELECT * FROM tb_students_score;
-> END //
Query OK, 0 rows affected (0.09 sec)

php执行mysql的存储过程后如何获取返回值

mysqli_query($db,"SET NAMES utf8"); $result=$db->query("call gxtj($year,$jd)"); // gxtj是mysql的存储过程名称 while( $row = $result->滚茄fetch_array(MYSQLI_ASSOC)) //完乱茄成从返回结果集中取出一行{while ($key=key($row)){ //依次取得字段名$value=current($row); //依次取得字哗备察段值}}

⑹ mysql创建存储过程出错,怎么解决

Warning: Procere created with compilation errors创建存储过程出现错误,是设置错误造成的,解决方法如下:

1、打开mysql的客户端管理软件,找到想要创建存储过程的数据库,在【Stored Proceres】菜单上点击鼠标右键,选择【Create Stored Procere】菜单项。

热点内容
linux架设服务器 发布:2025-06-03 08:02:28 浏览:105
刺激战场国际服如何匹配服务器 发布:2025-06-03 08:02:27 浏览:445
宝马x4什么配置划算 发布:2025-06-03 07:40:44 浏览:508
腾讯云备份服务器 发布:2025-06-03 07:30:35 浏览:829
手机小米路由存储 发布:2025-06-03 07:22:25 浏览:794
android使用方法 发布:2025-06-03 07:16:39 浏览:461
浙江服务器托管云主机 发布:2025-06-03 07:05:41 浏览:927
社保卡开通存储业务 发布:2025-06-03 07:04:06 浏览:428
创造与魔法如何快速挤进服务器 发布:2025-06-03 06:42:57 浏览:955
访问服务器很慢 发布:2025-06-03 06:31:27 浏览:851