navicatは関数解決方法を作成できません。
初めてMySQL FUNTIONを書きました。ずっと間違えました。
Err]1064-You have an error in your SQL syntax;check the manaual that cores ponds to your MySQL server sion for the right sntax to use near'company_id`int)RETURNS varhar(20)CHARSET utf 8
BEGIN
本来の関数:
デフォルトでは、delimiterはセミコロンです。
締め括りをつける
以上は本文のnavicatについて関数解決方法を作成できません。興味のある方はこのサイトを参照してください。RedisとMySQLの違いを簡単に説明します。、MYSQLサブクエリとネストクエリの最適化例解析、いくつかの比較的重要なMySQL変数など、何か問題があればいつでもメッセージを残してください。友達のサポートに感謝します。
Err]1064-You have an error in your SQL syntax;check the manaual that cores ponds to your MySQL server sion for the right sntax to use near'company_id`int)RETURNS varhar(20)CHARSET utf 8
BEGIN
本来の関数:
CREATE DEFINER=`33323`@`%` FUNCTION `createSaleCode`(`benginStr` varchar,`company_id` int) RETURNS varchar(20) CHARSET utf8
BEGIN
DECLARE nearnum VARCHAR(20);
DECLARE nowdatepre VARCHAR(20);
DECLARE numout VARCHAR(20);
SELECT a.sale_code INTO nearnum FROM d_sale a WHERE a.company_id = company_id ORDER BY a.sale_id DESC limit 1;
SELECT concat(extract(year_month from now()),LPAD(extract(day from now()), 2, 0)) INTO nowdatepre;
IF locate(nowdatepre,nearnum)>0
THEN
set numout = nearnum +1;
ELSE
set numout = concat(beginStr,nowdatepre,'00001');
END IF;
RETURN numout;
END
この関数はNavicatでは実行できません。何度か試した後、コードを以下に修正します。
delimiter $$
CREATE DEFINER=`12212`@`%` FUNCTION createSaleCode(benginStr varchar(20),company_id int(11) ) RETURNS varchar(20) CHARSET utf8
BEGIN
DECLARE nearnum VARCHAR(20);
DECLARE nowdatepre VARCHAR(20);
DECLARE numout VARCHAR(20);
SELECT a.sale_code INTO nearnum FROM d_sale a WHERE a.company_id = company_id ORDER BY a.sale_id DESC limit 1;
SELECT concat(extract(year_month from now()),LPAD(extract(day from now()), 2, 0)) INTO nowdatepre;
IF locate(nowdatepre,nearnum)>0
THEN
set numout = nearnum +1;
ELSE
set numout = concat(beginStr,nowdatepre,'00001');
END IF;
RETURN numout;
END$$
delimiter ;
問題が解決する。デフォルトでは、delimiterはセミコロンです。
締め括りをつける
以上は本文のnavicatについて関数解決方法を作成できません。興味のある方はこのサイトを参照してください。RedisとMySQLの違いを簡単に説明します。、MYSQLサブクエリとネストクエリの最適化例解析、いくつかの比較的重要なMySQL変数など、何か問題があればいつでもメッセージを残してください。友達のサポートに感謝します。