パラメータを使用してMySQLでプロシージャを作成しますか?
INとOUTを使用してパラメータを作成できます。 INは入力パラメータを取得するために使用され、OUTは出力に使用できます。
構文は次のとおりです
DELIMITER // CREATE PROCEDURE yourProcedureName(IN yourParameterName dataType,OUT yourParameterName dataType ) BEGIN yourStatement1; yourStatement2; . . N END; // DELIMITER ;
まず、テーブルを作成します。テーブルを作成するためのクエリは次のとおりです
mysql> create table SumOfAll -> ( -> Amount int -> ); Query OK, 0 rows affected (0.78 sec)
挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します。クエリは次のとおりです
mysql> insert into SumOfAll values(100); Query OK, 1 row affected (0.18 sec) mysql> insert into SumOfAll values(330); Query OK, 1 row affected (0.24 sec) mysql> insert into SumOfAll values(450); Query OK, 1 row affected (0.10 sec) mysql> insert into SumOfAll values(400); Query OK, 1 row affected (0.20 sec)
selectステートメントを使用して、テーブルのすべてのレコードを表示します。クエリは次のとおりです
mysql> select *from SumOfAll;
以下は出力です
+--------+ | Amount | +--------+ | 100 | | 330 | | 450 | | 400 | +--------+ 4 rows in set (0.00 sec)
次に、値がテーブルに存在するかどうかを確認するストアドプロシージャを作成します。指定された値がテーブルに存在しない場合は、NULL値を取得します。
ストアドプロシージャは次のとおりです
mysql> DELIMITER // mysql> create procedure sp_ChechValue(IN value1 int,OUT value2 int) -> begin -> set value2=(select Amount from SumOfAll where Amount=value1); -> end; -> // Query OK, 0 rows affected (0.20 sec) mysql> delimiter ;
ある値を使用してストアドプロシージャを呼び出し、出力をセッション変数に格納してみましょう。
ケース1:値がテーブルに存在しない場合。
mysql> call sp_ChechValue(300,@isPresent); Query OK, 0 rows affected (0.00 sec)
次に、selectステートメントを使用して変数@isPresentの値を確認します。クエリは次のとおりです
mysql> select @isPresent;
以下は出力です
+------------+ | @isPresent | +------------+ | NULL | +------------+ 1 row in set (0.00 sec)
ケース2:値が存在する場合。
クエリは次のとおりです。ストアドプロシージャを呼び出しましょう
mysql> call sp_ChechValue(330,@isPresent); Query OK, 0 rows affected (0.00 sec)
セッション変数@isPresentの値を確認してください。クエリは次のとおりです
mysql> select @isPresent;
以下は出力です
+------------+ | @isPresent | +------------+ | 330 | +------------+ 1 row in set (0.00 sec)
-
MySQLでSelectクエリを使用して挿入
SELECTクエリを使用した挿入の場合、構文は次のとおりです- insert into yourTableName(yourColumnName1,yourColumnName2,yourColumnName3,...N) select yourValue1,yourValue2,yourValue3,......N;を選択します。 まずテーブルを作成しましょう- mysql> create table DemoTable1603 -> ( -> StudentId int, -> Stud
-
MySQLで手動のAUTO_INCREMENT開始値を使用してテーブルクエリを作成しますか?
まずテーブルを作成しましょう- mysql> create table DemoTable1907 ( UserId int NOT NULL AUTO_INCREMENT, UserName varchar(20), UserAge int, UserCountryName varchar(20), PRIMARY KEY(UserId) )ENGINE=MyISAM,AUTO_INCREMENT=100;