我们可以从MySQL存储过程访问一个或所有表。以下是一个示例,其中我们创建了一个存储过程,该存储过程将表名作为参数接受,并在调用该表后将产生包含表中所有详细信息的结果集。
mysql> Delimiter // mysql> Create procedure access(tablename varchar(30)) -> BEGIN -> SET @X := CONCAT('Select * from',' ',tablename); -> Prepare statement from @X; -> Execute statement; -> END//
现在使用表名调用该过程,我们需要对其作为参数进行访问。
mysql> Delimiter ; mysql> Call access('student_info'); +------+---------+----------+------------+ | id | Name | Address | Subject | +------+---------+----------+------------+ | 101 | YashPal | Amritsar | History | | 105 | Gaurav | Jaipur | Literature | | 125 | Raman | Shimla | Computers | +------+---------+----------+------------+ 3 rows in set (0.02 sec)