草庐IT

procedure

全部标签

MySQL 存储过程,多个 SELECT 只返回一行?

我一直在研究一个在循环中运行select语句的存储过程。当通过mysqli或phpmyadmin查看结果时,我只收到一行。我需要做什么才能返回多行?这是一个非常简单的例子来说明我的问题....DROPPROCEDUREIFEXISTSsimple//CREATEPROCEDUREsimple()BEGINDECLAREcINT(10);SETc=1;REPEATSELECTc;SETc=c+1;UNTILc>=10ENDREPEAT;END// 最佳答案 我认为处理这个问题的最佳方法实际上是将您的输出存储到一个临时表中,然后在whi

PHP PDO : Stored Procedure Return Empty Result

我正在尝试使用PDO调用SP(存储过程)。try{//ConnectingusingthePDOobject.$conn=newPDO("mysql:host=$host;dbname=$dbname",$user,$password);$stmt=$conn->prepare('CALLsp_user(?,?,@user_id,@product_id)');$stmt->execute(array("demouser","demoproduct"));$result=$stmt->fetchAll();print_r($result);}//Catchingitifsomething

MySQL动态搜索查询程序

MySQL查询应该返回1)TRUE与逗号(,)分隔的STATION_NAME列表来自表STATIONWHERESTATION_NAME是LIKEINPUT指定购买用户。例如:INPUT=A,OUTPUT=(Agra,Ajmer,Amritsar,Ambala)。INPUT=AM,OUTPUT=(Amritsar,Ambala)2)FALSE,当不存在这样的站时3)错误。详细的PROCEDURE将不胜感激,因为我是MySQL的新手。提前致谢..:) 最佳答案 你不需要一个过程,只需要一个成功时返回一行或失败时不返回行的选择:selec

mysql - SHOW CREATE PROCEDURE 与 perl DBI 不一致的结果

将“SHOWCREATEPROCEDUREfoo”通过管道传输到mysql结果中,在标有“CreateProcedure”的列中包含完整的过程定义。然而,$dbh->selectrow_hashref("SHOWCREATEPROCEDUREfoo");导致$ref->{'CreateProcedure'}为undef,并正确填充其他列。两者都在具有相同凭据的同一台机器上执行。有谁知道为什么吗? 最佳答案 如果您连接的用户无权查看该过程,您将看到此内容。尝试在命令行中使用相同的用户,我猜您会看到CreateProcedure列为NU

mysql - 在过程中创建事件 - SQL

我需要在过程中创建一个事件,我在某处读到它是可能的,但我不知道语法。我正在尝试:CREATEPROCEDUREDUMMY_PROCEDURE()BEGINCREATEeventeonscheduleevery1secondDOINSERTINTOtest.tvalues(current_timestamp);END;但是它抛出:关于如何执行此操作的任何想法?感谢阅读。'#1576-RecursionofEVENTDDLstatementsisforbiddenwhenbodyispresent编辑1:我想在事件过程中创建一个事件的原因是因为它充当到期日期,因此执行该函数时还会创建一个具

mysql - 对数据库进行结构更改后更新 MySQL 存储过程

如果您对此问题有任何帮助,我将不胜感激。我正在运行一个使用MySQL数据库的网站。我在MySQLWorkbench中构建了数据库模型,所有SQL查询都是存储过程。问题是当我对数据库进行结构更改时,我不知道哪个存储过程受到影响,所以我要么手动列出所有过程并手动进行更改,要么使用试错法。问题-有没有一种方法可以自动执行存储过程更新过程。我想确切地知道在对数据库进行某些结构更改时哪些存储过程会受到影响。如果MySQL不行,那么其他数据库可以吗?(开源或商业)。谢谢。 最佳答案 在Oracle中,如果任何依赖对象被更改或变得无效,存储过程就

html - 如何在 MySQL 函数中将 SQL 选择查询转换为格式化的 HTML 表

我正在寻找一种通过将任何查询输出转换为HTML表来在MySQL(没有PHP)中生成有效HTML代码的方法。这是我到目前为止的进展,显然,我被卡住了。希望能得到一些帮助,谢谢。1。“dynSQL”-一个采用任何Select查询并从中创建命名表的过程由于MySQL不允许在函数中进行动态查询,因此我调用了一个创建命名表tmp的过程。我不能使用临时表,因为有关临时表的信息在information_schema中不可用(在mysql5.6中)CREATEDEFINER=`root`@`%`PROCEDURE`dynSQL`(SQL_QUERYTEXT)BEGINset@SQLQ:='Dropta

mysql - 使用 MySQL 中的存储过程参数限制选定的行数

我有一个包含SELECT语句的过程SelectProc。我想添加一个过程参数LimitRowsCount并按如下方式使用它:CREATEPROCEDURESelectProc(INLimitRowsCountINTEGERUNSIGNED)BEGINSELECT(...)LIMITLimitRowsCount;END但这种方法行不通。SELECT本身包含嵌套子查询,因此我无法从中创建View。有没有比动态SQL(preparedstatements)更合适的方式? 最佳答案 CREATEPROCEDURESelectProc(INL

mysql - 如何在 MySQL 中组合 CREATE PROCEDURE 脚本

在MySQL中,我想编写一个脚本并将多个CREATEPROCEDURE语句放入其中,通常的;由于某些原因无法工作。还有另一种方法可以在同一个脚本中运行多个CREATE语句吗?如果是,怎么办? 最佳答案 真的没什么(foo.sql)您可以使用\从mysql命令行运行它。foo.sqlusefoo_db;--TABLESdroptableifexistsusers;createtableusers(user_idintunsignednotnullauto_incrementprimarykey,usernamevarbinary(32

php - 如何通过php更改mysql分隔符

我在mysql终端中用一组sql语句创建了一个事件,它工作正常。但我想从php脚本创建这个事件。我的查询如下。DELIMITER|CREATEEVENTe_cartONSCHEDULEATCURRENT_TIMESTAMP+INTERVAL3MINUTEDOBEGINSET@var_orderid='';SET@var_orderid=(SELECTorderidFROMorderWHEREid=308);IF@var_orderid=NULLTHENUPDATEorderSETstatus=1WHEREid=308;ENDIF;END|DELIMITER;这导致:-Error:You