从给定MySQL数据库中的存储过程或函数,是否可以引用另一个MySQL数据库中的存储过程或函数,如下所示?
SELECT
some_table.field1,
some_table.field2,
another_database.STORED_PROCEDURE(arg),
...
FROM ...
WHERE ...
我刚开始使用程序,似乎不能让我的程序正常工作。我正在使用WAMPP v5.1.36,并使用MySQL服务器上的MySQL控制台输入代码。如果我去(重新)创建这个过程。我得到错误#1304 (42000)。
mysql> DELIMITER //
mysql>
mysql> CREATE PROCEDURE modx.getCRID (IN x VARCHAR(255),OUT y INT)
-> BEGIN
-> DECLARE y INT;
-> SELECT id INTO y
-
因此,我有以下查询:
IF ( ( SELECT RevisionNumber FROM SchemaVersion ) > 1 ) THEN BEGIN
CREATE TABLE Test ( ID INT );
CREATE TABLE Test2 ( ID INT );
END;
END IF
基本上,我希望根据表中的值(SchemaVersion -总是有1行)来决定是否需要进行某些更改。
但是,当我使用此查询时,我得到以下错误消息:
#1064 - You have an error in your SQL syntax; check the manual th
我可以在mysql函数中调用存储过程吗?我试过了,但它抛出语法错误。有可能吗?
DELIMITER $$
DROP FUNCTION IF EXISTS `fn_abcd`$$
CREATE FUNCTION `fn_abcd`(orderItem BIGINT(45),quantity INT) RETURNS double
BEGIN
DECLARE TotalNetValue DOUBLE;
set TotalNetValue = call sp_abcd(orderItem,quantity);
RETURN TotalNetValue;
END$$
我在MySQL中有两个存储过程。我想从另一个呼叫其中一个,但我需要一些语法方面的帮助
下面是过程1 FindPreviousDate
DELIMITER $$ CREATE PROCEDURE `FindPreviousDate`(IN eventdate DATETIME, IN lookbackDays INT, IN symbol VARCHAR(20))
BEGIN
SELECT *
FROM Price a
WHERE a.eventDate between (eventDate - interval lookbackDays day) and (eventdate - interv
在这个页面上,我发现了一个非常符合我在这里寻找的程序:
我对它做了一些修改,以实际处理我的数据库,但是每次我创建函数时,它都会抛出一个错误。我假设我实际上不能在MySQL 5.0中创建一个先例,而是必须创建一个函数。我只是需要一点帮助。我对为MySQL创建过程非常陌生。
DELIMITER $$
DROP FUNCTION IF EXISTS `GEODIST` $$
CREATE FUNCTION `GEODIST`( mylat float, mylong float, dist int )
BEGIN
DECLARE lon1 float;
DECLARE lon2
嗨,我在使用Devart时遇到了这种异常。我在MySql中调用一个存储过程。Store procedure函数,如果我通过DB调用它。
using (dc = conn.GetContext())
{
result = dc.StoreProcedure(pId).FirstOrDefault();
}
return result;
[MySqlException (0x80004005): You have an error in your SQL syntax; check the manual that corresponds to your M
无论我看什么地方,似乎MySQL存储过程都可以进行事务处理。但是当我声明我的存储函数时
create function test( a int )
returns int
MODIFIES SQL DATA
BEGIN
START TRANSACTION ;
update t set col='some value' where id=a ;
COMMIT ;
return 0 ;
END //
我得到了
错误代码: 1422。在存储的函数或触发器中不允许显式或隐式提交。
我的mysql数据库中有以下存储过程:
BEGIN
DECLARE useCount, remainingUses INT DEFAULT 0;
/* Get the current values for the quiz into the variables */
SELECT remaining_uses, use_count INTO remainingUses, useCount FROM quiz_passwords WHERE password_id = passwordId;
/* Are there remaining uses to consume? */
if (r
我以前使用过此方法来返回更改的行数。我想运行一个insert方法,insert在存储过程中运行良好,但ExecuteNonQuery的返回值总是返回-1。
下面是我的C#代码:
int ret = 0;
using (SqlConnection conn = new SqlConnection(this.ConnectionString))
{
using (SqlCommand cmd = new SqlCommand(QueryName, conn))
{
conn.Open();
if (Params != null)
我有一个类似于下面的函数,它用传入数据库的SQL字符串更新我的数据库。
我已经用了很久了,一切都很好,但我突然想到了。在phpMyAdmin中执行Delete/Update命令时,有可能从数据库接收‘X行数删除/更新’这样的响应吗?
Imports MySql.Data.MySqlClient
Function doUpdate(sql)
Dim DBConnection = ConfigurationManager.ConnectionStrings("dbConn").ConnectionString
'this is getting the con
CREATE PROCEDURE `checkAdminAccess`
(
IN accountID INT
)
BEGIN
DECLARE staffID INT;
#DECLARE num INT;
SELECT StaffID INTO staffID
FROM staff
WHERE AccountID = accountID
AND IsAdmin = 1;
SELECT staffID;
IF (staffID IS NULL) THEN
CALL raise(1356, 'Admin access required.');
我正在使用实体框架通过db方法在MVC5中工作。我使用Mysql作为数据库。我创建了一个过程,当在Mysql中调用过程时,它按照我的期望工作。但是当我在MVC中使用过程时,它每次都会返回0。
存储过程
CREATE PROCEDURE `checkSeasonAvailability`(
IN paramSeasonId INT,
IN paramHotelId INT,
IN paramStartDate varchar(20),
IN paramEndDate varchar(20)
)
BEGIN
DECLARE _startDate,_e
我使用PDO已经有一段时间了,我正在重构一个项目,以便它使用存储过程而不是内联SQL。我收到一个无法解释的错误。我正在使用PHP5.3.5版和MySQL 5.0.7版。
我只是想让一个基本的带输出的存储过程正常工作。下面是存储的进程:
DELIMITER //
CREATE PROCEDURE `proc_OUT` (OUT var1 VARCHAR(100))
BEGIN
SET var1 = 'This is a test';
END //
下面是我用来调用这个过程的代码,$db是PDO的一个实例:
$stmt = $db->prepare
这是一个非常基本的MySQL问题,但我找不到答案。假设下面的storedprocedure主体;
DECLARE Existing INT DEFAULT 0;
SELECT SQL_CALC_FOUND_ROWS name FROM users WHERE id = pid LIMIT 1;
SELECT FOUND_ROWS() INTO Existing;
Select Existing;
当我运行它时,它总是返回第一个SELECT结果。但是,我希望它返回最后一个(选择现有的)结果。这种行为正常吗?如果是这样,我如何更改它,因为第一个select只是为了检查,而最后一个是我需要的。
(真