🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
MySQL Workbench

MySQL Workbenchは、オープンソースのデータベースモデリングツールです。ビジュアルなデータベース設計・SQL開発・サーバー設定・ユーザー管理・バックアップといった様々な管理ツールを備えます。

A5:SQL Mk-2

A5:SQL Mk-2は、フリーのSQL開発ツールです。高機能で軽量、且つ分かりやすいことを目指して開発されました。SQLの実行やテーブル編集などの機能に加え、簡単な操作によりDB定義書やER図を自動生成することも可能です。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Q&A

解決済

2回答

1020閲覧

mysql プロシージャー作成エラーについて

rockbatman

総合スコア13

MySQL Workbench

MySQL Workbenchは、オープンソースのデータベースモデリングツールです。ビジュアルなデータベース設計・SQL開発・サーバー設定・ユーザー管理・バックアップといった様々な管理ツールを備えます。

A5:SQL Mk-2

A5:SQL Mk-2は、フリーのSQL開発ツールです。高機能で軽量、且つ分かりやすいことを目指して開発されました。SQLの実行やテーブル編集などの機能に加え、簡単な操作によりDB定義書やER図を自動生成することも可能です。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

0グッド

2クリップ

投稿2021/01/28 03:41

mysqlのプロシージャーにてエラーが発生しました。
Error Code: 1064. You have an error in your SQL syntax

処理としてはclient_TBLの中身一度削除して、CSVのデータをclient_TBLへ取り込む処理を行っています。
セミコロンの位置に原因があると考えているのですが、正直わかりません。ご教示お願い致します。

下記がプロシージャー構文になります。

sql

1CREATE PROCEDURE BB_import() 2BEGIN 3 TRUNCATE TABLE client_TBL; 4 5 LOAD DATA LOCAL INFILE 'C:/Users/×××/Desktop/tmpDownload/BB.csv' 6 INTO TABLE client_TBL 7 FIELDS TERMINATED BY ',' 8 LINES TERMINATED BY '\n' 9 IGNORE 1 LINES 10 (@1,@2,@3,@4,@5,@6,@7,@8,@9,@10,@11,@12) 11 SET 12 times=@1, 13 t_date=@2, 14 No1=@3, 15 No2=@4, 16 No3=@5, 17 No4=@6, 18 No5=@7, 19 No6=@8, 20 No7=@9, 21 test_No1=@10, 22 test_No2=@11; 23END

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

Load data処理はできないのはすでに指摘があるとおりですが
単純にデリミタの調整とかがしてないのが文法エラーの原因だと思います

SQL

1delimiter // 2CREATE PROCEDURE BB_import() 3BEGIN 4・・・ 5END 6// 7delimiter ;

投稿2021/01/28 04:16

編集2021/01/28 04:17
yambejp

総合スコア116661

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rockbatman

2021/01/28 05:07

ご回答ありがとうございます。 デリミタの設定を行っていないのが原因でエラーが発生していました。 追加したところLOAD DATAのエラーが確認できました。 ありがとうございます。
guest

0

ベストアンサー

MySQL の procedure 内で LOAD DATA ってできないんじゃないでしょうか。
https://www.quora.com/Why-does-MySQL-disallow-LOAD-DATA-in-stored-procedures

ただ、その場合 LOAD DATA is not allowed in stored procedures とエラーになるようなので、別のミスがあるのかもしれません。

投稿2021/01/28 04:09

68user

総合スコア2022

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rockbatman

2021/01/28 05:02

ご回答ありがとうございます。 プロシージャー内のLOAD DATAは使用できないですね。勉強なりました。 リンク先を参考に回避策に取り組みたいと思います。 エラーになった原因ですが、デリミタの設定ができていないのが、原因でした。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問