mysql call_mysql call用法:调用存储过程

在mysql中使用 call语句调用存储过程,是很经常的事,今天分享一段代码,供朋友们参考。

代码:

mysql> CREATE TABLE titles ( //创建mysql表

-> titleID int(11),

-> title varchar(100),

-> subtitle varchar(100),

-> edition tinyint(4),

-> publID int(11),

-> catID int(11),

-> langID int(11),

-> year int(11),

-> isbn varchar(20),

-> comment varchar(255),

-> ts timestamp,

-> authors varchar(255),

-> PRIMARY KEY (titleID)

-> );

Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO titles VALUES (1,'Linux','Installation',5,1,57,2,2000,NULL,NULL,'2005-02-28 13:34:21','Michael'),

-> (2,'Excel',NULL,NULL,2,3,NULL,2000,NULL,NULL,'2005-02-28 13:34:22','David'),

-> (3,'XML',NULL,NULL,1,2,NULL,1997,NULL,NULL,'2005-02-28 13:34:22','Edwards'),

-> (4,'PHP',NULL,NULL,3,6,NULL,2000,NULL,NULL,'2005-02-28 13:34:22','Tom'),

-> (5,'MySQL','',0,3,34,NULL,2000,'','','2005-02-28 13:34:22','Paul'),

-> (6,'Java',NULL,NULL,4,34,NULL,1999,NULL,NULL,'2005-02-28 13:34:22','Tim');

Query OK, 6 rows affected (0.00 sec)

Records: 6 Duplicates: 0 Warnings: 0

mysql> CREATE TABLE publishers ( //创建mysql表

-> publID int(11) NOT NULL auto_increment,

-> publName varchar(60) collate latin1_german1_ci NOT NULL default '',

-> ts timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,

-> PRIMARY KEY (publID),

-> KEY publName (publName)

-> ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci;

Query OK, 0 rows affected (0.01 sec)

mysql> INSERT INTO publishers VALUES (1,'A','2004-12-02 18:36:58'),

-> (2,'Apress','2004-12-02 18:36:58'),

-> (3,'New Riders','2004-12-02 18:36:58'),

-> (4,'O\'Reilly & Associates','2004-12-02 18:36:58'),

-> (5,'Hanser','2004-12-02 18:36:58');

Query OK, 5 rows affected (0.00 sec)

Records: 5 Duplicates: 0 Warnings: 0

mysql> delimiter $$

mysql>

mysql> create PROCEDURE get_title(IN id INT) //创建存储过程

-> BEGIN

-> SELECT title, subtitle, publName FROM titles, publishers WHERE titleID=id AND titles.publID = publishers.publID;

-> END$$

Query OK, 0 rows affected (0.00 sec)

mysql> create PROCEDURE half(IN a INT, OUT b INT) //创建存储过程

-> BEGIN

-> SET b = a/2;

-> END$$

mysql> delimiter ;

mysql> CALL get_title(1); //调用存储过程

+-------+--------------+----------+

| title | subtitle | publName |

+-------+--------------+----------+

| Linux | Installation | A |

+-------+--------------+----------+

1 row in set (0.00 sec)

Query OK, 0 rows affected (0.01 sec)

mysql> drop table publishers; //删除表publishers

Query OK, 0 rows affected (0.00 sec)

mysql> drop table titles; //删除表titles

Query OK, 0 rows affected (0.00 sec)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值