在mysql 创建 存储过程create_track_table1 成功,我想执行存储过程,输入call create_track_table1 (1000,'gk'); 返回结果成功,实际上无结果
时间: 2023-11-22 18:54:59 浏览: 40
如果存储过程执行成功,但是没有返回任何结果,可能是因为存储过程中没有使用SELECT语句返回结果。可以在存储过程中添加SELECT语句,例如:
```
CREATE PROCEDURE create_track_table1 (IN max_rows INT, IN table_name VARCHAR(255))
BEGIN
DECLARE i INT DEFAULT 1;
DECLARE sql_query VARCHAR(2000) DEFAULT '';
WHILE i <= max_rows DO
SET sql_query = CONCAT('INSERT INTO ', table_name, ' VALUES (', i, ', \'Track ', i, '\')');
PREPARE stmt FROM sql_query;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET i = i + 1;
END WHILE;
SELECT CONCAT('Created table ', table_name);
END;
```
这样,当你执行存储过程时,就会返回一个提示信息,告诉你已经成功创建了表格。
相关问题
mysql创建存储过程p_getbysno,根据指定的学号得到学生的选课门数和总分
好的,以下是创建存储过程p_getbysno的SQL语句:
```
CREATE PROCEDURE p_getbysno(IN sno INT, OUT course_count INT, OUT total_score FLOAT)
BEGIN
SELECT COUNT(*) INTO course_count, SUM(score) INTO total_score
FROM score
WHERE sno = sno;
END
```
该存储过程有一个输入参数sno,代表学号;有两个输出参数course_count和total_score,分别代表该学生选课门数和总分。在存储过程内部,使用SELECT语句查询score表,使用COUNT函数统计选课门数,使用SUM函数统计总分,并将结果赋值给输出参数。注意,这里的输入参数和输出参数都要使用IN和OUT关键字声明。
mysql sql调用存储过程_MySQL数据库之存储过程的创建和调用
MySQL数据库支持存储过程,存储过程是一种预先编写好的程序,可以被多次调用和执行,使得数据库应用程序的开发更加灵活和高效。下面是MySQL数据库存储过程的创建和调用方法:
1. 创建存储过程
在MySQL数据库中创建存储过程需要使用“CREATE PROCEDURE”语句,语法如下:
```
CREATE PROCEDURE procedure_name([IN | OUT | INOUT] parameter_name parameter_type)
BEGIN
-- 存储过程体
END;
```
其中,procedure_name 是存储过程的名称,parameter_name 是存储过程的参数名称,parameter_type 是存储过程的参数类型,可以是任意的MySQL数据类型,例如VARCHAR、INT、DOUBLE等。存储过程体可以包含SQL语句、流程控制语句、变量声明等。例如,下面是一个简单的存储过程:
```
CREATE PROCEDURE get_user_info(IN user_id INT)
BEGIN
SELECT * FROM users WHERE id = user_id;
END;
```
以上存储过程名为get_user_info,接受一个IN类型的参数user_id,返回对应用户的信息。
2. 调用存储过程
在MySQL数据库中调用存储过程需要使用“CALL”语句,语法如下:
```
CALL procedure_name(parameter_value);
```
其中,procedure_name 是存储过程的名称,parameter_value 是存储过程的参数值,可以是任意的MySQL数据类型,例如字符串、整型等。例如,调用上述的get_user_info存储过程可以使用以下语句:
```
CALL get_user_info(1001);
```
以上语句将会返回id为1001的用户信息。
综上所述,MySQL数据库存储过程的创建和调用方法比较简单,可以提高数据库应用程序的开发效率和灵活性。