今早上刚看的存储过程,很是不明白
教材上的示例是
PHP codeCREAT PROCEDURE pr_demo_in(IN p_in INT) //这里的是p_in这个参数是只字段名吗?
BEGIN
SELECT p_in;
SET p_in;
SELECT p_in;
END;//=================================CREAT PROCEDURE sp_name()
BEGIN
SET @a = 5; //这里的@ 是干嘛用的
SET @b = 5;
INSERT INTO t VALUES (@a);
SELECT s1 * @a FROM t WHERE s1 >=@b; //这一句的s1 * @a没明白,s1是什么
END;//下面是我自己写的一个,这个表中有 uid ,和u_name等字段,但是下面的语句提示第三行错误,把
WHERE uid=1去掉也是一样CREAT PROCEDURE pr_demo(IN u_name CHAR)
BEGIN
SELECT u_name WHERE uid=1;
SET u_name='hcf';
SELECT u_name WHERE uid=1;
END;
教材上的示例是
PHP codeCREAT PROCEDURE pr_demo_in(IN p_in INT) //这里的是p_in这个参数是只字段名吗?
BEGIN
SELECT p_in;
SET p_in;
SELECT p_in;
END;//=================================CREAT PROCEDURE sp_name()
BEGIN
SET @a = 5; //这里的@ 是干嘛用的
SET @b = 5;
INSERT INTO t VALUES (@a);
SELECT s1 * @a FROM t WHERE s1 >=@b; //这一句的s1 * @a没明白,s1是什么
END;//下面是我自己写的一个,这个表中有 uid ,和u_name等字段,但是下面的语句提示第三行错误,把
WHERE uid=1去掉也是一样CREAT PROCEDURE pr_demo(IN u_name CHAR)
BEGIN
SELECT u_name WHERE uid=1;
SET u_name='hcf';
SELECT u_name WHERE uid=1;
END;
解决方案 »
- 关于mysql 如何查找某一数字范围
- mysql 删除当前数据库下所有表
- MYSQL中能否实现两列数据A列在B列中的模糊查询
- 关于数据库教学视频
- 请教一个SQL语句,查询的。
- 怎样改变 MySql5.0 的默认字符为 gbk 或 gb2312 ?
- 這個查詢怎麼寫啊???
- 请问在MySQL中, 设定表的结构为BDB(TYPE=BDB)支持事务的功能到底在什么程度?
- 对数据求和,并且列出所有数据
- 分页查询,每8个商品中同一个店铺的只能有1个,求指导。
- 有人知道postgresql里面怎么写 update set select where?
- 一条MySQL查询语句,卡死机器,不知道为什么,求高手指点!
NO,是传入参数SELECT s1 * @a FROM t WHERE s1 >=@b; //这一句的s1 * @a没明白,s1是什么
s1字段名,s1 * @a:字段值*变量@A的值SELECT u_name WHERE uid=1;->少了FROM
SELECT u_name from tt WHERE uid=1;
CREATE PROCEDURE pr_demo( IN u_name CHAR ) //这里可以有多个参数吗
BEGIN
SELECT u_name FROM user WHERE uid=1; //找不到这里的错误
SET u_name='hcf';
SELECT u_name FROM user;
END;
CALL pr_demo('u_name');错误提示:
#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 '' at line 3
delimiter //
CREATE PROCEDURE pr_demo( IN u_name CHAR ) //这里可以有多个参数吗
BEGIN
SELECT u_name FROM user WHERE uid=1; //找不到这里的错误
SET u_name='hcf';
SELECT u_name FROM user;
END;
//
delimiter ;
CALL pr_demo('u_name');
在MYSQL的帮助文档中搜索一下 delimiter 的作用。
in表示是传入参数
p_in是参数名
INT表示是参数的类型变量前加@表示是全局变量第三行SELECT u_name WHERE uid=1;错误是因为没有用from指定要查询的数据表名