私の割り当てのためにデータベースにストアドプロシージャをいくつか作成しようとしていますが、実行時に正しく動作しない理由を理解できません。動作しないストアドプロシージャ?
最初にテーブルにメンバーを追加しようとしています。それはうまく動作しますが、何も追加されません。それはすべてのために0を追加するだけです。
CREATE DEFINER=`root`@`localhost` PROCEDURE `AddMember`(IN `iFirstname` VARCHAR(15) CHARSET utf8, IN `iLastname` VARCHAR(15) CHARSET utf8, IN `iCPR` INT(10) ZEROFILL, IN `iPhone` INT(8) ZEROFILL, IN `iAddress` VARCHAR(50) CHARSET utf8, IN `iPostcode` INT(4) UNSIGNED, IN `iDateJoined` DATE, IN `iNewsletter` BOOLEAN)
MODIFIES SQL DATA
SQL SECURITY INVOKER
INSERT INTO members (FirstName,
LastName,
CPR,
PhoneNumber,
Address,
Postcode,
DateJoined,
Newsletter)
VALUES (iFirstname,
iLastname,
iCPR,
iPhone,
iAddress,
iPostcode,
iDateJoined,
iNewsletter)
2番目はメンバーの削除です。 DELETE FROM WHERE行を自己で実行するとうまく動作しますが、ストアドプロシージャに置かれても動作しません。
CREATE DEFINER=`root`@`localhost` PROCEDURE `DeleteMember`(IN mID INT)
BEGIN
DELETE FROM members WHERE MemberID = mID;
END
私はこれに新しいですし、具体的な答えを見つけることほとんどの例はさらに複雑で、特にとして困難であるとして、それらと間違っているものに、ビット混乱しています。
の上に返さ:手順は、実際にはないように思えますあなたが信じている値を見て、あなたはそれに合格しています。どのように手続きを呼びますか?どのような環境でですか? mysqlのトラブルシューティングのゴールドスタンダードは 'mysql'コマンドラインクライアントです。それをテストして、それがうまくいくと思う。 mysql> USE your_database_name; '' mysql> CALL DeleteMember(1); 'プロシージャコードに明白な問題はありません。 –