有人问过类似的关于sql-server的问题here.我想知道它是否可能在MySql中。编辑:我想在View中使用过程返回的结果集。 最佳答案 如果您想获取结果集并在FROM子句中使用例程-否。MySQL中的存储例程(过程或函数)不能将表作为结果值返回。但是您可以将函数用作简单的值,例如-DELIMITER$$CREATEFUNCTIONmul10(Param1INT)RETURNSINT(11)BEGINRETURNParam1*10;END$$DELIMITER;CREATEORREPLACEVIEWview1ASSELECTm
我正在尝试调用一个编译成功的过程,但在调用时出现此错误:查询:调用proc5错误代码:1064您的SQL语法有误;检查与您的MySQL服务器版本对应的手册,了解在第1行的“NULL”附近使用的正确语法这是我的存储过程:DELIMITER$$CREATEDEFINER=`root`@`localhost`PROCEDURE`proc5`()BEGINDECLAREdoneBOOLDEFAULTFALSE;DECLAREtablenameVARCHAR(100);DECLAREtracktablesCURSORFORSELECTTABLE_NAMEFROMinformation_schem
我有一个简单的MySQL存储过程,旨在返回给定节点的所有子记录。我的问题是当我手动输入它时它返回正确的结果-但是当我将相同的代码放入存储过程时它只返回父ID。非常感谢一些指导!例如-当我调用我的过程(代码如下)时,我得到:callfind_child(1006);+--------+|nodeid|+--------+|1006||1006||1006||1006|+--------+4rowsinset(0.01sec)但是-当我剪切并粘贴命令时,我得到了正确的结果集:mysql>createtemporarytableKID_TABLE(nodeidINT);QueryOK,0ro
我需要在过程中创建一个事件,我在某处读到它是可能的,但我不知道语法。我正在尝试:CREATEPROCEDUREDUMMY_PROCEDURE()BEGINCREATEeventeonscheduleevery1secondDOINSERTINTOtest.tvalues(current_timestamp);END;但是它抛出:关于如何执行此操作的任何想法?感谢阅读。'#1576-RecursionofEVENTDDLstatementsisforbiddenwhenbodyispresent编辑1:我想在事件过程中创建一个事件的原因是因为它充当到期日期,因此执行该函数时还会创建一个具
我正在编写一个存储过程以从表中选择多个值,然后将每个值插入到不同表中的新行中,同时将两个参数传递给函数。我能找到的所有文档都显示了如何插入选择的结果,而不是插入选择的结果和参数,这是我想知道的语法。function(a,b)selectcfromtableforeachresult,insert(a,b,c)intonewtable(a,b,c)在上面的伪代码中,值c是从select语句中检索的,但是a和b的值来自存储过程参数。选择语句可能会返回多个值。所以让我们在表中说:编号c1个苹果2橙色3个梨然后调用存储过程:procedure(recipe,book)然后我们会在新表中看到:i
我在NavicatforMySQL中创建存储过程如下:CREATEPROCEDUREmyloop()BEGINDECLAREcustomerIDINTDEFAULT11;first_loop:LOOPSETcustomerID=customerID+1;DECLAREitemIDINTDEFAULT0;second_loop:LOOPSETitemID=itemID+1;InsertINTOtbl_order(customerId,itemId)VALUES(customerID,itemID);IFitemID=3000THENLEAVEsecond_loop;ENDIF;ENDLO
我想创建一个带输入参数的MySQL存储过程(SP)。但是,在编写SP时无法确定参数的数量。(场景是用户将有多个选项可供选择。选择的选项将构成搜索条件:select...whereprod_category=option1&&option2&&option3&&...因此,如果有人只选择选项1和选项2,则只会发送2个参数。有时可能会选择50多个选项,因此必须发送50多个参数。)所以,我有3个问题:1.我可以使用MySQL存储过程(SP)来处理这种情况吗?2.SP是处理这种情况的专业方式吗?3.如果SP不是处理这些场景的专业方法,还有什么可以有效处理这些搜索的方法吗?搜索是我的应用程序的核
我想知道phpMyAdmin是否可以“运行”存储过程。我知道我可以使用phpmyadmin中的sql选项卡创建存储过程,并且该存储过程存储在InformationSchema数据库下的Routines表中。当我尝试从数据库中某个表的sql选项卡中调用过程时,我得到了#1312-PROCEDUREdbname.procnamecan'treturnaresultsetinthegivencontext.错误信息。有没有什么方法可以从phpmyadmin中调用(执行程序)?如果是,请告诉我应该在哪里输入用于运行proc的sql代码。版本详情:phpmyadmin:3.4.10.1php:5
我想做一个MySQL存储过程DELIMITER$$DROPPROCEDUREIFEXISTS`SECTOR_INDUSTRY_SP`$$CREATEPROCEDURE`SECTOR_INDUSTRY_SP`(INRINSERIESTEXT,INCOMMUNITYIDSTEXT)READSSQLDATABEGINSELECT*fromPROFESSIONAL_IDENTITY_MERGEDp,std_company_detailswhere(p.pim_company_id=s.cid)ANDp.pim_community_idIN('+'+COMMUNITYIDS+'+')ANDp.p
我在MySQL中有一个存储过程,它从一个表中获取下一个唯一ID,用作其他2个表的ID(这不是最好的方法,我敢肯定,但我正在修改别人的代码在这里)。流程如下:DELIMITER$$CREATEDEFINER=`root`@`%`PROCEDURE`GetNextID`(OUTidbigint)BEGINDECLAREuidVARCHAR(255);SETuid=uuid();INSERTINTO`ident_column_generator`(u)VALUES(uid);SELECTIDINTOidFROM`ident_column_generator`WHEREu=uid;DELETE