MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLストアドプロシージャを介してテーブルにアクセスするにはどうすればよいですか?


MySQLストアドプロシージャから1つまたはすべてのテーブルにアクセスできます。以下は、テーブルの名前をパラメーターとして受け取り、それを呼び出した後、テーブルのすべての詳細を含む結果セットを生成するストアドプロシージャを作成した例です。

mysql> Delimiter //
mysql> Create procedure access(tablename varchar(30))
   -> BEGIN
   -> SET @X := CONCAT('Select * from',' ',tablename);
   -> Prepare statement from @X;
   -> Execute statement;
   -> END//
Query OK, 0 rows affected (0.16 sec)

次に、テーブル名を使用してプロシージャを呼び出します。パラメータとしてアクセスする必要があります。

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)
Query OK, 0 rows affected (0.04 sec)

  1. 2つのMySQLテーブルをマージするにはどうすればよいですか?

    2つのMySQLテーブルをマージするには、次の構文を使用します- INSERT IGNORE INTO yourTableName1 select *from yourTableName2; いくつかのレコードを含む2つのテーブルを作成します。その後、マージプロセスは上記の構文の使用を開始します。 最初のテーブルの作成- mysql> create table MergeDemo1 -> ( -> id int, -> primary key(id), -> Name varchar(200) -> ); Query OK,

  2. MySQLのすべてのストアドプロシージャにアクセスすることをユーザーに許可するにはどうすればよいですか?

    まず、MySQL.user-テーブルのすべてのユーザーとホストを表示しましょう。 mysql> select user,host from Mysql.user; これにより、次の出力が生成されます- +------------------+-----------+ | user             | host      | +------------------+-----------+ | Bob             &n