基本上,如果SystemFeedbackidParam不为null,我将传递参数SystemFeedbackidParam
,做一件事,如果是,那就做单独的事情。我可以在SQL中执行此操作,但这样做的方法是mysql正在逃避我。
谢谢!
CREATE PROCEDURE `_Insert_FeedBack`( FeedbackTypeParam varchar(20), FeedbackSubjectParam varchar(200), FeedbackTextParam text, FeedbackHTMLParam longtext, SubmittedByParam varchar(20), SubmittedDateParam datetime, SystemFeedbackidParam int) BEGIN IF (SystemFeedbackidParam IS NOT NULL) THEN --/*Insert Child Record into tblfeedbackitems */ INSERT INTO tblfeedbackitems(SystemFeedbackId, FeedbackType, FeedbackText, FeedbackHTML, SubmittedBy, SubmittedDate) VALUES (SystemFeedbackidParm, FeedbackTypeParam , FeedbackTextParam , FeedbackHTMLParam , SubmittedByParam , SubmittedDateParam ); ELSE --/*Insert Parent Record into tblFeedback */ INSERT INTO tblfeedback( FeedbackType, FeedbackSubject, FeedbackStatus) VALUES ( FeedbackTypeParam, FeedbackSubjectParam, 'Open'); --/*Insert Child Record into tblFeedback */ INSERT INTO tblfeedbackitems(SystemFeedbackId, FeedbackType, FeedbackText, FeedbackHTML, SubmittedBy, SubmittedDate) VALUES (LAST_INSERT_ID(), FeedbackTypeParam , FeedbackTextParam , FeedbackHTMLParam , SubmittedByParam , SubmittedDateParam ); END
答案 0 :(得分:1)
这里有几个问题:
试试这个:
Delimiter $$
CREATE PROCEDURE `_Insert_FeedBack`(
FeedbackTypeParam varchar(20),
FeedbackSubjectParam varchar(200),
FeedbackTextParam text,
FeedbackHTMLParam longtext,
SubmittedByParam varchar(20),
SubmittedDateParam datetime,
SystemFeedbackidParam int)
BEGIN
IF (SystemFeedbackidParam IS NOT NULL)
THEN
-- /*Insert Child Record into tblfeedbackitems */
INSERT INTO tblfeedbackitems(SystemFeedbackId,
FeedbackType,
FeedbackText,
FeedbackHTML,
SubmittedBy,
SubmittedDate)
VALUES (SystemFeedbackidParm,
FeedbackTypeParam
,
FeedbackTextParam
,
FeedbackHTMLParam
,
SubmittedByParam
,
SubmittedDateParam
);
ELSE
-- /*Insert Parent Record into tblFeedback */
INSERT INTO tblfeedback(
FeedbackType,
FeedbackSubject,
FeedbackStatus)
VALUES (
FeedbackTypeParam,
FeedbackSubjectParam,
'Open');
-- /*Insert Child Record into tblFeedback */
INSERT INTO tblfeedbackitems(SystemFeedbackId,
FeedbackType,
FeedbackText,
FeedbackHTML,
SubmittedBy,
SubmittedDate)
VALUES (LAST_INSERT_ID(),
FeedbackTypeParam
,
FeedbackTextParam
,
FeedbackHTMLParam
,
SubmittedByParam
,
SubmittedDateParam
);
END IF;
END $$
Delimiter ;
注意:我已修复您的语法错误。我不知道你的代码是否真的有效。
答案 1 :(得分:0)
查看此网站上的mysql文档http://dev.mysql.com/doc/refman/5.0/en/if.html 在那里你可以找到所有的信息,但基本上就是这样
IF NOT SystemFeedbackidParam THEN
......
END IF;
你也可以使用else语句。