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

推薦する

デザインストーリー: ナンバープレートを覚えられない警備員

<br />私が住んでいる地域では、コミュニティに出入りする車両を管理するために、コミュ...

JSパッケージオブジェクトに関する簡単な説明

目次概要意味インスタンスメソッドプリミティブ型とインスタンスオブジェクト間の自動変換カスタムメソッド...

Linux Dig コマンドの使用法

発掘紹介: Dig は、Unix ライクなコマンドライン モードで NS レコード、A レコード、M...

Vue の foreach 配列と js の traversal 配列の書き方の説明

Vue foreach配列を記述し、jsで配列をトラバースする方法シナリオVueでAxiosを使用し...

MySQL Limitパフォーマンス最適化とページングデータパフォーマンス最適化の詳細な説明

MySQL Limit はセグメント内のデータベース データをクエリでき、主にページングで使用されま...

JavaScriptにおけるPromiseの使い方と注意点について(推奨)

1. 約束の説明Promise は、非同期操作の最終状態 (失敗または正常完了) とその結果の値を...

Dockerプライベートライブラリの実装

プライベート Docker レジストリのインストールとデプロイは、Docker テクノロジーを導入、...

VM VirtualBox 仮想マシンのマウント共有フォルダ

一つの環境CentOS 7にVMware Toolsをインストールしてホストの共有フォルダへのアクセ...

ネイティブ js でカスタム スクロール バーを実装する

この記事の例では、カスタムスクロールバーを実装するためのjsの具体的なコードを参考までに共有していま...

企業サイトとコラム辞典 中国語と英語の比較 中国語と英語のバイリンガル企業サイトを作る仲間は

名前キャラクター名前キャラクター情報ニューステクノロジー技術スキンケアスキンケア補う補う香水香水化粧...

Founder フォント ライブラリの中国語と英語のファイル名比較表

Founder Type Library は、Founder Type Library ビジネス チ...

MySql のグループ化と各グループからランダムに 1 つのデータを取得する

アイデア: 最初にランダムに並べ替えてからグループ化します。 1. テーブルを作成します。 テーブル...

Web ページでパラメータ名によって ActiveX コントロールのプロパティに値を割り当てる例

コードをコピーコードは次のとおりです。 <HTML> <ヘッド> <T...

Vueはデジタル千単位区切り形式をグローバルに実装します

この記事の例では、Vue がデジタル 3 桁区切り形式をグローバルに実装するための具体的なコードを参...

効率化に役立つ 20 の CSS コーディングのヒント (並べ替え)

この記事では、主要な CSS ウェブサイトで推奨されている 20 個の便利なルールとベスト プラクテ...