DELIMITER $$ CREATE PROCEDURE pro_输入成绩自动生成学分( IN sno CHAR(12), IN sname CHAR(10), IN cname CHAR(10), IN Score INT, ) BEGIN INSERT INTO learning (ln_sno, ln_sname, ln_cname) VALUES (sno, sname, cname); UPDATE tb_score SET tb_score.Score = tb_score.Score + Score WHERE tb_score.Student_Id = sno; END $$ DELIMITER ;报错错误代码: 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 ') BEGIN INSERT INTO learning (ln_sno, ln_sname, ln_cname) VALUES (sno, s' at line 6
时间: 2024-02-05 11:03:32 浏览: 65
根据您提供的代码,我发现有一个多余的逗号在最后一个参数后面。请尝试使用以下代码:
```
DELIMITER $$
CREATE PROCEDURE pro_输入成绩自动生成学分(IN sno CHAR(12), IN sname CHAR(10), IN cname CHAR(10), IN Score INT)
BEGIN
INSERT INTO learning (ln_sno, ln_sname, ln_cname)
VALUES (sno, sname, cname);
UPDATE tb_score
SET tb_score.Score = tb_score.Score + Score
WHERE tb_score.Student_Id = sno;
END $$
DELIMITER ;
```
这个修改过后的代码应该可以解决您的问题。
相关问题
DELIMITER $$ CREATE PROCEDURE `stm`.`get_student_num`(OUT count_num CHAR(10)) BEGIN SELECT COUNT(sno) INTO count_num FROM student; END$$ DELIMITER ; CALL get_student_num(@count_num) SELECT @count_num
好的,根据您的要求,我已经创建了一个名为 `get_student_num` 的存储过程,代码如下:
```mysql
DELIMITER $$
CREATE PROCEDURE `get_student_num`(OUT count_num CHAR(10))
BEGIN
SELECT COUNT(sno) INTO count_num FROM student;
END;
$$
DELIMITER ;
```
该存储过程接受一个输出参数 count_num,用于返回学生人数信息,具体实现是通过查询 student 表获取记录数,并将结果存入 count_num 中。
接下来,您可以使用以下 SQL 语句调用该存储过程:
```mysql
CALL get_student_num(@count_num);
SELECT @count_num;
```
其中,@count_num 是一个用户变量,用于接收存储过程的输出参数。第一行代码调用了存储过程,并将结果存入 @count_num 变量中。第二行代码则直接查询 @count_num 变量的值,以显示学生人数信息。
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 表中的员工编号和姓名,并输出结果。
阅读全文