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

ブログ    

推薦する

ウェブサイトがhttpsを有効にした後のSSLのセキュリティ構成と検出

最近のウェブサイトでは SSL を有効にするのが標準となっています。ただし、SSL を設定した後も、...

js と jQuery での Ajax の使用例の詳細

目次ネイティブJS GETリクエストの送信方法投稿リクエストの送信方法パラメータ付きのGETリクエス...

Element-ui レイアウト (行と列コンポーネント) の実装

目次基本的な手順と使用方法行コンポーネントの分析レンダリング機能ソースコード分析Col成分の分析コン...

mysql ステートメントを使用してユーザー権限を照会するプロセスの詳細な説明

MySQL では、ユーザーに付与された権限をどのように確認しますか? ユーザーに付与される権限は、グ...

HTML チュートリアル: 定義リスト

<br />原文: http://andymao.com/andy/post/104.h...

CocosCreatorのホットアップデートの包括的な説明

目次序文ホットチェンジとはCocos Hot アップデートの概要マニフェストプロジェクトリソースとゲ...

jsを呼び出すいくつかの方法が整理され、使用が推奨されています

a タグではクリック イベントがよく使用されます。 1. href="javascript...

Centos7にTenda U12ワイヤレスネットワークカードドライバーをインストールする際の問題を解決する

解決プロセス:方法1: CentOS7.3 のデフォルトのカーネル バージョンは低く、3.10.0-...

MySQL の自動増分主キーが使い果たされた場合の対処方法

面接では、次のようなシナリオを経験する必要があります。インタビュアー: 「MySQL を使用したこと...

Javascript クロージャの使用シナリオの原則の詳細

目次1. 終了2. クロージャの使用シナリオ1.タイムアウトを設定する2. コールバック3. 手ぶれ...

Linux 7.6 バイナリに MySQL 8.0.27 をインストールする詳細な手順

目次1. 環境整備1.1 オペレーティング システムのバージョン1.2 ディスク容量1.3 ファイア...

Vue の大容量ファイルアップロードとブレークポイント再開アップロードの実装

目次ファイルアップロードのための2つのソリューションファイルストリーム(フォームデータ)に基づくクラ...

Vue で Openlayer を使用して読み込みアニメーション効果を実現する

注意: スコープアニメーションは使用できません。 ! ! ! GIF経由 <テンプレート>...

JavaScriptのクローン作成についての簡単な説明

目次1. 浅いクローニング2. ディープクローニング1. 浅いクローニング浅いクローンでは配列やオブ...

MySQL データベースは何をしますか?

MySQL はリレーショナル データベース管理システムです。リレーショナル データベースは、すべて...