テーブルに値を挿入するMySQLストアド関数を作成するにはどうすればよいですか?
私たちが知っているように、関数は結果を返したいときに最もよく使われます。したがって、値の挿入や更新などのテーブルを操作するためのストアド関数を作成する場合、それは多かれ少なかれストアドプロシージャのようになります。
例
次の例では、「student_marks」という名前のテーブルに値を挿入する「tbl_insert」という名前のストアド関数を作成しています。
mysql> Create Function tbl_insert(S_name Varchar(50),M1 INT,M2 INT,M3 INT,M4 INT)
-> RETURNS INT
-> DETERMINISTIC
-> BEGIN
-> INSERT INTO student_marks values(S_name,M1,M2,M3,M4);
-> RETURN 1;
-> END//
Query OK, 0 rows affected (0.00 sec)
mysql> Select tbl_insert('Saurabh',85,79,65,71);
+------------------------------+
| tbl_insert('RR',58,25,65,32) |
+------------------------------+
| 1 |
+------------------------------+
1 row in set (0.07 sec)
mysql> Select * from student_marks;
+---------+------+---------+---------+---------+
| Name | Math | English | Science | History |
+---------+------+---------+---------+---------+
| Raman | 95 | 89 | 85 | 81 |
| Rahul | 90 | 87 | 86 | 81 |
| Mohit | 90 | NULL | 86 | 81 |
| Saurabh | 85 | 79 | 65 | 71 |
+---------+------+---------+---------+---------+
4 rows in set (0.00 sec) -
MySQL関数からテーブルを返す方法は?
MySQL関数からテーブルを返すことはできません。この関数は、文字列、整数、文字などを返すことができます。MySQLからテーブルを返すには、関数ではなくストアドプロシージャを使用します。 まずテーブルを作成しましょう- mysql> create table DemoTable696 ( Id int, Name varchar(100) ); Query OK, 0 rows affected (0.77 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into De
-
MySQLテーブルから3つのランダムな値を表示する方法は?
ランダムにはRAND()を使用しますが、値の数にはLIMIT 3、つまりここでは3を使用します- select yourColumnName from yourTableName order by rand() limit 3; まずテーブルを作成しましょう- mysql> create table DemoTable646 ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,FirstName varchar(100) ); Query OK, 0 rows affected (0.76 sec) 挿入コマンド-を使用