相关疑难解决方法(0)

MySQL:@variable与变量.有什么不同?

在我发布的另一个问题中有人告诉我,之间有区别:

@variable
Run Code Online (Sandbox Code Playgroud)

和:

variable
Run Code Online (Sandbox Code Playgroud)

在MySQL中.他还提到了MSSQL如何具有批量作用域以及MySQL具有会话作用域.有人可以为我详细说明这个吗?

mysql sql variables

488
推荐指数
3
解决办法
42万
查看次数

错误1046没有数据库选中,如何解决?

错误SQL查询:

--
-- Database: `work`
--
-- --------------------------------------------------------
--
-- Table structure for table `administrators`
--
CREATE TABLE IF NOT EXISTS `administrators` (

`user_id` varchar( 30 ) NOT NULL ,
`password` varchar( 30 ) NOT NULL ) ENGINE = InnoDB DEFAULT CHARSET = latin1;
Run Code Online (Sandbox Code Playgroud)

MySQL说:

#1046 - No database selected
Run Code Online (Sandbox Code Playgroud)

这里需要一些帮助.

mysql sql mysql-error-1046

269
推荐指数
9
解决办法
70万
查看次数

MySQL存储过程与函数,我会在什么时候使用?

我在看MySQL存储过程和函数.真正的区别是什么?

它们似乎相似,但功能有更多限制.

我可能错了,但似乎存储过程可以做所有事情,而存储功能可以做得更多.为什么/何时使用程序与函数?

mysql stored-procedures sql-function

151
推荐指数
4
解决办法
9万
查看次数

MySQL中的分隔符

我经常看到人们正在使用Delimiters.我试着找出什么是分隔符,它们的目的是什么.经过20分钟的谷歌搜索,我无法找到满足我的答案.那么,我现在的问题是:什么是分隔符,什么时候应该使用它们?

mysql delimiter

145
推荐指数
4
解决办法
15万
查看次数

程序和功能与常规之间的差异?

在MySQL数据库上下文中,这三个术语有什么区别:

  • 存储过程;
  • 存储程序;
  • 存储功能.

PS内置函数就像那些日期时间函数一样,WEEKDAY()被认为是什么?

mysql terminology

71
推荐指数
4
解决办法
5万
查看次数

使用PDO使用Out参数调用存储过程

我现在一直在使用PDO并且正在重构一个项目,以便它使用存储过程而不是内联SQL.我收到一个我无法解释的错误.我正在使用PHP版本5.3.5和MySQL版本5.0.7.

我只是想让一个基本的存储过程与输出工作.这是存储过程:

DELIMITER //  
CREATE PROCEDURE `proc_OUT` (OUT var1 VARCHAR(100))  
BEGIN  
    SET var1 = 'This is a test';  
END //  
Run Code Online (Sandbox Code Playgroud)

这是我用来调用proc的代码,$ db是PDO的一个实例:

$stmt = $db->prepare("CALL proc_OUT(?)");
$stmt->bindParam(1, $return_value, PDO::PARAM_STR, 4000); 

    // call the stored procedure
    $stmt->execute();
    echo $returnvalue;
Run Code Online (Sandbox Code Playgroud)

简单吧?但是,它会导致以下错误:

exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1414 OUT or INOUT argument 1 for routine mydb.proc_OUT is not a variable or NEW pseudo-variable in BEFORE trigger
Run Code Online (Sandbox Code Playgroud)

如果我像这样直接调用proc:

CALL proc_OUT(@res);
SELECT @res;
Run Code Online (Sandbox Code Playgroud)

它按预期工作,这让我相信它是如何用PHP调用的,但我似乎无法找到问题所在.我按照手册中的说明操作,但仍然收到此错误.有谁能建议我做错了什么?任何建议将非常感谢.非常感谢!

php mysql pdo stored-procedures prepared-statement

12
推荐指数
3
解决办法
2万
查看次数

存储过程IN,OUT,INOUT参数

任何人都可以详细解释IN,OUT和INOUT参数之间的区别吗?

谢谢.

PS我正在使用MySQL 5.5

mysql sql stored-procedures

10
推荐指数
3
解决办法
1万
查看次数

使用PHP中的PDO创建存储过程

我正在从PHP读取TEXT文件并尝试从中执行命令,例如创建数据库以及它具有的所有表和过程.我的代码创建表但不创建文件中给出的存储过程.

 DELIMITER $$
 DROP PROCEDURE IF EXISTS `add_hits`$$
 CREATE DEFINER=`root`@`localhost` PROCEDURE `add_hits`( In id varchar(255))
 BEGIN
 select hits into @hits from db_books where Book_ID = id;
 update db_books set hits=@hits+1 where Book_ID = id;
 END$$
Run Code Online (Sandbox Code Playgroud)

PDO没有创建SP,如何才能完成这项任务?我已经尝试一行一行地执行所有代码部分,但没有任何作用.
我正在尝试制作数据库安装程序脚本.

php mysql sql pdo stored-procedures

6
推荐指数
2
解决办法
4391
查看次数

MySql 存储过程是原子的吗?

正如标题所说,MySQL 中的存储过程是原子的吗?即会像

for (..)
  <check_if_row_has_flag>
for (..)
  <update_row>
Run Code Online (Sandbox Code Playgroud)

原子地工作?

有趣的是,除了 2009 年的一个论坛帖子外,我在 Google 上找不到太多关于此的信息。

mysql atomic

5
推荐指数
1
解决办法
1292
查看次数

在MySQL存储过程中OUT的目的是什么?

OUTMySQL存储过程的目的是什么?

如果我有一个简单的存储过程,如下所示:

DELIMITER $$

CREATE DEFINER=`root`@`localhost` PROCEDURE `new_routine`(
    IN iID int
)
BEGIN
    select * from table1 where id = iID;
END
Run Code Online (Sandbox Code Playgroud)

这将通过运行给我所有我想要的结果:

call new_routine(7);
Run Code Online (Sandbox Code Playgroud)

那么我为什么要/需要使用OUT

DELIMITER $$

CREATE DEFINER=`root`@`localhost` PROCEDURE `new_routine`(
    IN iID int,
    OUT vName varchar(100)
)
BEGIN
    select name into vName from table1 where id = iID;
END
Run Code Online (Sandbox Code Playgroud)

并称之为这样

call new_routine(7, @name);
select @name;
Run Code Online (Sandbox Code Playgroud)

哪个会给我一个名字,而不是返回的行中的所有内容?

我已经尝试过谷歌搜索,但显然没有向谷歌提出正确的问题以获得明确的答案.

php mysql stored-procedures

4
推荐指数
2
解决办法
5658
查看次数

关于MySQL存储过程的示例

你能不能在MySQL存储过程中给我一个简单的INOUT示例?

mysql sql stored-procedures

1
推荐指数
2
解决办法
2万
查看次数

在 phpMyAdmin 中创建存储过程时出现“错误 #1313 RETURN is only allowed in a FUNCTION”

我正在尝试在 phpMyAdmin 中创建以下存储过程。但是,我不断收到此错误:#1313 - RETURN is only allowed in a FUNCTION

CREATE PROCEDURE IS_POINT_IN_POLYGON()
BEGIN
DECLARE n INT DEFAULT 0;
DECLARE pX DECIMAL(19,16);
DECLARE pY DECIMAL(19,16);
DECLARE ls LINESTRING;
DECLARE poly1 POINT;
DECLARE poly1X DECIMAL(19,16);
DECLARE poly1Y DECIMAL(19,16);
DECLARE poly2 POINT;
DECLARE poly2X DECIMAL(19,16);
DECLARE poly2Y DECIMAL(19,16);
DECLARE i INT DEFAULT 0;
DECLARE result INT(1) DEFAULT 0;
SET pX = X(p);
SET pY = Y(p);
SET ls = ExteriorRing(poly);
SET poly2 = EndPoint(ls);
SET poly2X = X(poly2);
SET poly2Y …
Run Code Online (Sandbox Code Playgroud)

mysql database stored-procedures phpmyadmin mysql-error

0
推荐指数
1
解决办法
5304
查看次数