我正在努力从MySQL存储过程中获取结果OUT变量。我得到以下错误:
java.sql.SQLException: Parameter number 3 is not an OUT parameter
存储过程如下所示:
CREATE DEFINER=`cv_admin`@`localhost` PROCEDURE `CheckGameEligibility`(
IN gID INT(10),
IN uID INT(10),
OUT result TINYINT(1)
)
BEGIN
# Do lots of stuff, then eventually:
我有一个查询,看起来像这样:
mysql_query("IF EXISTS(SELECT * FROM predict WHERE uid=$i AND bid=$j)
THEN UPDATE predict SET predict_tfidf=$predict_tfidf WHERE uid=$i AND bid=$j
ELSE INSERT INTO predict (uid, bid, predict_tfidf) VALUES('$i','$j','$predict_tfidf')
我有一个sql查询,它在SQL Server中工作得很好,可以得出由特定供应商提供的商品的最后购买率,如下所示:
Select Top 1 Rate
From TXPurchaseDetail
Where CompanyCode = 200
And VoucherSeries = 'INPURSCR'
And SupplierCode = 1042
And ItemCode = 1521
And voucherdate <= '2011/05/25'
我试着让这句话奏效,但我似乎不能让它做我想做的事。如果我执行select @结果,它将给我值0,那么If语句为什么不能工作?
SET @message = '((sometihng here))';
select LEFT(@message, 1) into @firstChar;
select STRCMP(@firstChar,'(') into @result;
IF (@result = 0) THEN
SET @message = 'true';
//more selects and cals here;
END IF;
selec
这是我的简单循环
SET @id = 16;
SET @res = @id;
simple_loop: LOOP
SELECT @p := c_parent FROM categories WHERE c_id = @id;
IF @p > 0 THEN
SET @id = @p;
SET @res = @res + ',' + @p;
ELSE
LEAVE simple_loop;
END IF;
END LOOP simple_loop;
SELECT @res;
在phpMyAdmin中执行代码会得到标准错误
您的SQL语法有错误;请检
我刚开始使用程序,似乎不能让我的程序正常工作。我正在使用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
-
我试着在网上找到这个问题的答案,但找不到任何明确的解释:
存储过程中的@是否服务于某种特殊用途/表示某种特定的东西?我对我们什么时候使用它有点困惑,因为示例似乎在用法上有所不同。
例如,在下面的示例中使用@:
DELIMITER $
DROP PROCEDURE IF EXISTS emp_count_2;
CREATE PROCEDURE emp_count_2(OUT param1 INT)
BEGIN
SELECT COUNT(*) INTO param1 FROM Employee;
END
$
DELIMITER ;
/* To invoke this procedure
因此,最初的问题是,在MySQL工作台中,我试图修改过程,却一无所获。没有错误只是什么都没发生。结果是,尽管对模式具有完全的权限,因为存储过程的定义者不是我,但我无法查看它的源代码。
设想情况:
Database: Bugs
Users: A, B
Permissions:
grant all privileges on bugs.* to 'A'@'%'
grant all privileges on bugs.* to 'B'@'%'
用户A创建存储过程
create procedure user_A_procedure .
查询中出错:您的SQL语法中有一个错误;请查看与您的MySQL服务器版本对应的手册,了解要使用的正确语法,请在第1行的'IF EXISTS(SELECT flag FROM check customerID= '6767') SELECT flag‘中使用
这个查询没有接近第1行,所以我不确定错误是什么。有人能给点建议吗?:)
<?php
$db_link = mysql_connect('localhost', 'secrets', '') or die('Could not connect to the
嘿,伙计们,我用mysql做了一个过程,我想知道是否可以在as语句之前使用begin关键字。
我的代码
create procedure avinash (in hon int)
as alias
begin
select * from customers;
end//
当我使用错误时,我会得到一个错误,当我删除as关键字时,它工作得很好。
有什么选项可以让我使用as keyword`‘..Am,只是问一下mysql中是否有可用的选项。
谢谢你帮忙..。
我有一个表T1,并在插入T1后触发触发器,并使用UDF调用外部T1程序,其中应用程序正在查找最后插入的数据,并在条件基上执行操作,但它不像预期的那样工作。请帮助,因为我猜我们不能从触发触发器的同一表中选择数据??是这样吗?
触发器
DELIMITER @@
CREATE TRIGGER CALL
AFTER INSERT ON call_test
FOR EACH ROW
BEGIN
DECLARE cmd CHAR(255);
DECLARE result int(10);
SET cmd=CONCAT('php /var/www/html/test/call.php'
我可以在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查询。
DECLARE RecCount Int Default 0;
SET RecCount=(select count(*) from tables where WaiterID=1 and date(TDate)=date(now()));
当我执行它时,我会得到以下错误:
Error Code: 1193. Unknown system variable 'RecCount'
因此,我在谷歌上搜索了“在MySQL中声明变量”。似乎每个人都使用DECLARE
我不明白为什么我的查询不执行。
我正在使用MYSQL工作
我正在尝试创建一个简单的存储过程,在SQLYog中针对mySql db使用一个if else语句。我不太熟悉mySql语法,所以我希望它是简单的,但我只是不明白为什么这不起作用
CREATE PROCEDURE p(IN Number INT)
IF NUMBER = 1 THEN
SELECT * FROM tblProduct WHERE ProductID = Number
ELSE SELECT * FROM tblProduct WHERE ProductId = 2
END IF
如果有人能帮我解决这个问题,告诉我哪里出了问题,我将不胜感激。感谢您的阅读。
当我试图执行以下操作时
我有一个在MySQL 5.6上运行良好的存储过程。在最近的服务器迁移期间,我们升级到MySQL 5.7.19。
我的存储过程现在抛出错误:
Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'utility-monitor.daily_readings.building_id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible
我就是搞不懂为什么这段MySQL代码不能工作。
其目的是检查凭据,如果它们存在,则返回ID,如果不存在,则插入它们并返回ID;
SET @Found = 0;
SELECT Id INTO @Found FROM Users WHERE Users.Username = "testAccount" AND Users.Email = "test@email.com";
IF @Found > 0 THEN
SELECT @Found;
ELSE
INSERT INTO Users VALUES (DEFAULT, "testAc
CREATE PROCEDURE search
@id INT
AS
BEGIN
SET NO COUNT ON;
SELECT cteachID,
cfname,
cmname,
clname
FROM tbl_teacher
WHERE cteachID = @id
END
MySQL说:文档
1064 -您的SQL语法有一个错误;请检查与您的MariaDB服务器版本相对应的手册,以获得正确的语法,在第2行使用“@id INT作为开始设置不计数”。
因此,我有以下查询:
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