Navicatは機能ソリューション共有を作成できません

Navicatは機能ソリューション共有を作成できません

初めて MySQL FUNCTION を書いたとき、エラーが何度も発生しました。

Err] 1064 - SQL構文にエラーがあります。MySQLサーバーのバージョンに対応するマニュアルを参照して、'`company_id`の近くで使用する正しい構文を確認してください。int) RETURNS varchar(20) CHARSET utf8

始める

元の関数:

CREATE DEFINER=`33323`@`%` FUNCTION `createSaleCode`(`benginStr` varchar,`company_id` int) 戻り値 varchar(20) CHARSET utf8 
始める 
  nearnum VARCHAR(20)を宣言します。  
 nowdatepre VARCHAR(20) を宣言します。 
 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 位置(nowdatepre,nearnum)>0  
  それから  
    numout = nearnum +1 を設定します。   
  それ以外  
    numout = concat(beginStr,nowdatepre,'00001') を設定します。  
  終了の場合; 
 戻り値 numout; 
終わり

この関数は Navicat では実行できません。何度か試行した後、コードは次のように変更されました。

区切り文字 $$ 
CREATE DEFINER=`12212`@`%` FUNCTION createSaleCode(benginStr varchar(20),company_id int(11) ) 戻り値 varchar(20) CHARSET utf8 
始める 
  nearnum VARCHAR(20)を宣言します。  
 nowdatepre VARCHAR(20) を宣言します。 
 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 位置(nowdatepre,nearnum)>0  
  それから  
    numout = nearnum +1 を設定します。   
  それ以外  
    numout = concat(beginStr,nowdatepre,'00001') を設定します。  
  終了の場合; 
 戻り値 numout; 
終わり$$ 
区切り文字 ;

問題は解決しました。

デフォルトでは、区切り文字はセミコロンです。

要約する

以上が、Navicat が関数を作成できない問題の解決方法に関するこの記事の内容のすべてです。皆様のお役に立てれば幸いです。興味のある方は、引き続きこのサイトを参照してください。Redis と MySQL の違いの簡単な紹介、MYSQL サブクエリとネストされたクエリの最適化例の分析、いくつかの重要な MySQL 変数などが掲載されています。ご質問がある場合は、いつでもメッセージを残していただければ、編集者がすぐに返信いたします。このサイトをサポートしてくれた友人たちに感謝します!

以下もご興味があるかもしれません:
  • Navicat でストアド プロシージャ、トリガーを作成し、カーソルを使用する簡単な例 (画像とテキスト)
  • Navicat 8はデータベースを作成し、ユーザーを作成して権限を割り当てるグラフィックメソッド
  • Navicat 8 を使用してデータベースを作成し、データをインポートしてユーザーと権限を管理する [グラフィック方式]

<<:  React Native スキャフォールディングの基本的な使い方の詳細な説明

>>:  Alibaba Cloud MySQL スペースをクリーンアップする方法

推薦する

Tomcatのクラスロードメカニズムを説明する記事

目次- 序文 - - JVM クラスローダー - 1. JVMクラスローダー2. クラスローダーのソ...

MySql8.0以降のバージョンでROOTパスワードを正しく変更する方法

展開環境:インストールバージョン Red Hat Cent 7.0 MYSQL バージョン 8.0....

Web2.0: 情報過多の原因と解決策

<br />情報の重複、情報過多、情報強迫、パーソナライズされたカスタマイズ、検索エンジ...

CentOS7 64でのMySQL5.6.40の詳細なインストール手順

CentOS7 64でのMySQL5.6.40のインストール手順1) 以前にインストールしたMySQ...

Vueの学習手順

目次1. v-text (v-instruction name = "variable&q...

初心者向けのHTMLタグネストルールの詳細なまとめ

最近、HTML を再度学習しており、これは HTML に対する新たな理解と言えます。これを過小評価し...

Linux での MySQL 8.0 インストール チュートリアル

この記事では、LinuxでMySQL 8.0をインストールする方法を紹介します。具体的な内容は次のと...

ボタンをクリックして画像を切り替える JavaScript

この記事の例では、ボタンをクリックすることで画像を切り替えることを実現するJavaScriptの具体...

vue.js 動的コンポーネントの詳細な説明

:動的コンポーネントv-bind:is="component name" を使用...

Nginx ロケーション設定(ロケーションのマッチング順序)の詳細な説明

ロケーションは「位置指定」を意味し、主にさまざまな位置指定のための URI に基づいています。これは...

ページング効果を実装するミニプログラム

この記事の例では、ページング効果表示を実現するためのミニプログラムの具体的なコードを参考までに共有し...

element-ui 写真をアップロードした後、座標点をマークします

要素UIとはelement-ui は、Ele.me のフロントエンド チームが開発者、デザイナー、製...

MySQL マスタースレーブレプリケーションの原理からインストールと設定までを包括的に解説します。

マスタースレーブレプリケーションがなぜ必要なのでしょうか? 1. 複雑な業務システムでは、SQL 文...

Centos7 での Mysql5.7.19 の詳細なインストールチュートリアル

1. ダウンロード公式サイトからmysql-5.7.19-linux-glibc2.12-x86_6...

Tkinterはjsキャンバスを使用してグラデーションカラーを実現します

目次1. RGBを使用して色を表す2. Tkinter キャンバスコンポーネント3. グラデーション...