delimiter $$ create procedure
时间: 2023-11-26 15:05:57 浏览: 46
使用delimiter进行修改定义储存过程的结束符的默认方式是将其设置为$。下面是修改定义储存过程的结束符的示例代码:
delimiter $
create procedure 存储过程名字([参数列表])
begin
sql语句集
end $
delimiter ;
使用基本语法可以定义储存过程的开始和结束标签。下面是基本语法的示例代码:
begin_label:
loop
sql语句集
end loop :end_label
另一种基本语法是直接使用分号作为储存过程的结束符。下面是使用分号作为结束符的示例代码:
create procedure 存储过程名字([参数列表])
begin
sql语句集
end;
相关问题
delimiter $$ create procedure mydb6_view.proc01() begin select empno,ename from emp; end $$ delimiter ;
这是一个 MySQL 存储过程,它的作用是查询 emp 表中的员工编号和姓名。下面是该存储过程的代码解释:
- `delimiter $$`:将语句结束符号从分号 `;` 改为双美元符号 `$$`,这样可以在存储过程中使用分号,避免与 SQL 语句中的分号混淆。
- `create procedure mydb6_view.proc01()`:创建一个名为 `mydb6_view.proc01` 的存储过程。
- `begin`:开始存储过程的代码块。
- `select empno,ename from emp;`:查询 emp 表中的员工编号和姓名。
- `end`:结束存储过程的代码块。
- `$$`:结束语句。
最后,`delimiter ;` 将语句结束符号恢复为默认的分号 `;`。
要执行该存储过程,可以使用以下代码:
```
call mydb6_view.proc01();
```
执行该代码后,将会查询 emp 表中的员工编号和姓名,并输出结果。
DELIMITER $$ CREATE PROCEDURE demo2(IN s_x CHAR(1),OUT s_t JSON) BEGIN SELECT * INTO s_t FROM student WHERE sex= s_x; SELECT s_t; END$$ DELIMITER;是否正确
以下是正确的存储过程代码:
DELIMITER $$
CREATE PROCEDURE demo2(IN s_x CHAR(1),OUT s_t JSON)
BEGIN
SELECT json_object('id', id, 'name', name, 'age', age) INTO s_t
FROM student WHERE sex= s_x;
SELECT s_t;
END$$
DELIMITER;
这个存储过程接收一个表示学生性别的参数 s_x,然后查询数据库中所有性别为 s_x 的学生的信息,并将其存储为一个 JSON 对象。最后,通过 OUT 参数 s_t 返回这个 JSON 对象。
值得注意的是,MySQL 5.7 版本之前并不支持直接将查询结果存储为 JSON 格式的数据。因此,在这个存储过程中,我们通过使用 json_object 函数手动创建一个 JSON 对象,并将其存储到 OUT 参数 s_t 中。如果你使用的是 MySQL 5.7 或以上版本,你可以直接使用 JSON 类型的数据。