0

私は手順に不慣れで、顧客のWebサイトに手順を実装しようとしています。

新しい顧客を追加する手順を作成したいと思います。phoneNumberがデータベースにまだ存在しないことを確認したいと思います。もしそうなら、エラーメッセージを表示したいです。電話番号がデータベースにない場合は、CUSTOMERテーブルに挿入します。

以下を実装しましたが、エラーが発生します。MySQLで変数を正しく宣言しているかどうかはわかりません。また、「ifステートメント」が私が行った方法で有効かどうかもわかりません。また、ifステートメントクエリを変数に設定するにはどうすればよいですか?誰かが助けることができれば、それは多くのことを意味するでしょう。ありがとう!

DELIMITER //
CREATE PROCEDURE add_Customer
(IN customerNum int, 
IN last varchar, 
IN first varchar)
BEGIN
DECLARE output var DEFAULT '';
IF SELECT CUSTOMER.customerNum FROM CUSTOMER WHERE CUSTOMER.customerNum= customerNum 
THEN
SET output= "Customer already exists!";
select output;
ELSE
INSERT INTO CUSTOMER VALUES (customerNum, last, first);
END IF;
END//
DELIMITER;

編集済み

DELIMITER //
CREATE PROCEDURE add_Customer
(IN customerNum int, 
IN last varchar, 
IN first varchar)
BEGIN
DECLARE output var DEFAULT '';
DECLARE var_num INT;
SELECT CUSTOMER.customerNum INTO var_num FROM CUSTOMER WHERE CUSTOMER.customerNum= customerNum 
if var_num IS NULL THEN
INSERT INTO CUSTOMER VALUES (customerNum, last, first);
ELSE
SET output= "Customer already exists!";
select output;
END IF;
END//
DELIMITER;
4

1 に答える 1

0

試す:

DECLARE var_num INT;
SELECT CUSTOMER.customerNum INTO var_num FROM CUSTOMER WHERE CUSTOMER.customerNum= customerNum
IF var_num IS NULL THEN
    INSERT INTO CUSTOMER VALUES (customerNum, last, first);
ELSE
    SET output= "Customer already exists!";
    select output;
ENDIF;
...
于 2012-12-05T04:06:22.947 に答える