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 スペースをクリーンアップする方法

推薦する

Nginx/Httpd リバース プロキシ Tomcat 設定チュートリアル

以前のブログでは、Tomcatのサーバーの各コンポーネントの使用について学びました。 Tomcatは...

Docker を使用して Microsoft Sql Server を展開するための詳細な手順

目次1 背景2 コンテナを作成する3 SAパスワードを変更する4 mssql のリンク5. コンテナ...

Linux システムによって報告される tcp_mark_head_lost エラーの処理方法

問題の説明最近、ホストから次のカーネル情報が報告されました。 7月8日 10:47:42 cztes...

JavaScript を使用して簡単なアルゴリズムを実行する方法

目次質問1件2つの方法3 実験結果と考察質問1件ご存知のとおり、 Pycharm 、 IDLE 、 ...

CSS スタイルを使用して表のフォントを垂直中央に配置する方法

CSS スタイルを使用して表内のフォントを垂直方向に中央揃えする方法は次のとおりです。下図のようなカ...

Zookeeperスタンドアロン環境とクラスタ環境の構築

1. 単一マシン環境の構築# 1.1 ダウンロードZookeeper の対応するバージョンをダウンロ...

Linux と最もよく使用されるコマンドの紹介 (習得は簡単ですが、問題の 95% 以上を解決できます)

Linux は現在最も広く使用されているサーバー オペレーティング システムです。Unix をベー...

React+Ant Design開発環境をセットアップするための実装手順

基礎1. スキャフォールディングを使用してプロジェクトを作成し、開始する1.1 足場を設置する: n...

このようなシェル スクリプトを使用して、多数の MySQL データベースを強制終了します (推奨)

朝早くに電話で起こされました。あるプロジェクトのデータベースがダウンしていて起動できないとのことでし...

HTML コード作成ガイド

共通コンベンションタグ自己終了タグ。閉じる必要はありません (例: img input br hr ...

MySQL 8.0.15 のインストールと設定方法のグラフィックチュートリアル (Win10 Home バージョン 64)

超初心者の私は、MySQL を学び始めたばかりで、インストール プロセス中に多くの問題に遭遇しました...

Mysqlのインポートとエクスポート時に発生する問題の解決

背景すべての業務を Docker の運用管理に移行してから、一連の落とし穴に遭遇しましたが、今回は ...

VMware12 に CentOS8 をインストールする方法 (VM 仮想マシンに CentOS8 をインストールするチュートリアル)

数日前に CentOS8 がリリースされました。8 の最初のバージョンですが、今日は VM12 に ...

Vueプロジェクトでスケルトンスクリーンを使用する方法

現在、アプリケーション開発は基本的にフロントエンドとバックエンドに分離されています。主流のフロントエ...

JavaScript でプライベート メンバーを作成する

目次1. クロージャを使用する2. ES6クラスを使用する3. ES2020提案を使用する4. We...