mysqlのクライアントから、create procedure文を入力し、表示するとコメントが消えてしまいます。
(例)
>delimiter //
>CREATE PROCEDURE abc()
>BEGIN
>#comment
>SELECT "A";
>END;
>//
>SHOW CREATE PROCEDURE abc;
>//
+-----------+----------+---------------------------------------------------------------------------+
| Procedure | sql_mode | Create Procedure |
+-----------+----------+---------------------------------------------------------------------------+
| abc | | CREATE DEFINER=`root`@`localhost` PROCEDURE `abc`()
BEGIN
SELECT "A";
END |
どうしたらコメントが入れられるか、どなたかお知恵をお貸しください。
mysqlのバージョンは 5.1で、OSはRedHat EL5です。
どうぞよろしくお願いいたします。m(__)m

A 回答 (1件)

>#comment


このコメントは、外部ファイルからsql文を読み込んで実行する時などに、外部ファイルをみた人に解りやすいようにするためのコメントなので、データとしては保持されません。

ーーMySQLmanualから構文抜粋引用
CREATE PROCEDURE sp_name ([proc_parameter[,...]])
[characteristic ...] routine_body
characteristic:
... | COMMENT 'string'

これをみるとcharacteristicの部分にコメント文を保持できるようですけど、routine_bodyの途中には無理のよう。
動作説明を入れるのが目的なら、このCOMMENT節でも十分かとおもう。

この回答への補足

早速のご回答ありがとうございます。
補足ですが、現在Nabicatというツールを使って入力するとコメントが入ります。入ったあとで、MySQLのクライアントでshow create procedure xxと実行すると、コメントは入っています。しかしツールを使用せずに、MySQLのクライアントで直接入力するとコメントが入らないのです。
この当たりのことをご存知ないでしょうか。
どうぞよろしくお願いいたします。

補足日時:2009/05/15 09:29
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QWindows7 パスワードリセット

今まで使っていた管理者アカウントのPWを忘れて
guestアカウントしかない状態です

なんとかパスワードを解除しようと

[Offline NT Password & Registry Editor]

このソフトを試したのですが

ERROR : Failed to copy registry file sam

とでてstep3に進むことができません。

どうすれば進むことができるでしょうか・・・


よろしくお願いします。

Aベストアンサー

linuxコマンド chntpw 使用の下記サイトを試してみてください。
Windows/System32/config フォルダの場所を正しく指定すればリセットできます。

chntpw
http://ftlabo.sakura.ne.jp/win/chntpw/chntpw.html

QUsage: \. | source とはどういうことですか。

C:直下に mysql フォルダ を置き、そのmysql フォルダの直下に test.sql を置きました。
test.sql の中味は、
create table shohin(・・・・・・・・);
insert into shohin(a,b,) values(pqr,xyz);
・・・・・・
と書いています。

この準備により、databese[zaiko] の [shohin]テーブルに、一括してデータを書き込みたいと思って、
mysql> use zaiko
Database changed
mysql> \.test.sql とすると、

Error:
Usage: \.<filename> | source<filename>
というエラーが出ます。

mysql> mysql zaiko <\.test.sql
としても同じエラーです。

Usage: \.<filename> | source<filename> とは、どういう意味のことを言っているのでしょうか?
うまくデータが書き込むためには、どこを修正すればよいのでしょうか?

C:直下に mysql フォルダ を置き、そのmysql フォルダの直下に test.sql を置きました。
test.sql の中味は、
create table shohin(・・・・・・・・);
insert into shohin(a,b,) values(pqr,xyz);
・・・・・・
と書いています。

この準備により、databese[zaiko] の [shohin]テーブルに、一括してデータを書き込みたいと思って、
mysql> use zaiko
Database changed
mysql> \.test.sql とすると、

Error:
Usage: \.<filename> | source<filename>
というエラーが出ます。

mysql>...続きを読む

Aベストアンサー

DOSプロンプト
c:\mysql>

から

mysql zaiko <.\test.sql

ではないかと。


通常、.はカレントディレクトリ,\はディレクトリの区切りを表すので、「.\」としたら「カレントディレクトリの」という意味です。SQLファイルのパスを指定しているだけかな?

参考URL:http://www.bitscope.co.jp/tep/MySQL/quickMySQL.html

Qパスワードリセットディスク

XPの入ったノートPCで、パスワードリセットディスクを作ろうとしたのですが、フォーマットされたディスクをAドライブに入れろ、ということで、フロッピーディスクを使うようですね。

私のノートPCは、フロッピーディスクがついていないので、リムーバブルディスクならいいのかと、USBメモリーを使ってみましたが、だめでした。

LANでつながれたデスクトップ機のAドライブを共有化し、ネットワークドライブを割り当てをしてみました。通常のファイルの読み書きはできましたが、パスワードリセットディスクは作成できませんでした。

フロッピーディスクのついていないPCで、パスワードリセットディスクの作成をするには、外付けFDDを用意するしかないのでしょうか?

Aベストアンサー

こんにちは。

 リムーバブルディスクが認識されなかったのは、下記の障害が原因かもしれません。
  http://support.microsoft.com/kb/894685/ja

では。

Qテーブル作成時に、「`id` int(100000000) 」とやるとエラーになるのはなぜ?対応策は?

MySQLでint型は、
「符号付きの範囲は -2147483648 ~ 2147483647。符号なしの範囲は 0 ~ 4294967295」
と、本やサイトに書いてありますが、

create table時に、
桁数として1億を指定しようとしたら、
以下のように怒られてしまいました。

mysql> create table `page_master` (`id` int(100000000) not null,`lang` varchar(5) not null
,`is_top` tinyint(2) not null,`is_valid` tinyint(1) not null) type = innodb
-> ;
ERROR 1439 (42000): Display width out of range for column 'id' (max = 255)
mysql>

なぜこのようなことが起こるのでしょうか?
また、対応策はありますでしょうか?

以上、よろしくお願いいたします。

Aベストアンサー

int型の宣言はint(精度)になります
精度というのは表示桁数です。
ただしintは数値型なので桁数は特殊な場合をのぞき無視されます。
たとえばint(1)とすると一桁しか表示されないのを期待するかもしれませんが
実際には10を表現するときは「1」ではなく「10」と表示されます

ではどういう場合につかわれるかというと、
UNSIGNED ZEROFILL
のオプションを付けた時に有効になります。

たとえばint(5)で表示するときにはそれぞれ以下のようになります。
1→00001
100→00100
100000→100000※桁があふれた場合はすべて表示する

なお指定できる桁数の最大はcharなどの文字列型と同等に255桁が最大ですが
実際のデータ精度から考えてもそんな桁数は必要なく、11桁が標準値と
なっています。

http://dev.mysql.com/doc/refman/4.1/ja/numeric-types.html

Qパスワードリセットディスク

ウインドウズXPです。パスワードリセットディスクを作ったのですが、いざ使用するときにドライブC(ハードディスク)が指定されてしまい、使えません。
読み込み画面で別のドライブを指定できる方法をご存知の方教えてください。

Aベストアンサー

出来ましたか?
http://www.jp.joshin.co.jp/jpsvc/windowsxp/howto/07.htm
に操作方法が載っています。
ちなみに、
>読み込み画面で別のドライブを指定できる方法。
これは指定できないようです。
参考URLの手順1.か手順2.の前にフロッピー(パスワードリセットディスク)を挿入しておく必要があるようです。

参考URL:http://www.jp.joshin.co.jp/jpsvc/windowsxp/howto/07.htm

QMysqlでミスタイプした後出てくる `>

今週からMySqlを学び始めた長初心者で恐縮ですが、どなたか知っていればよろしくお願いします。
新しいユーザーを作るためにGRANT ALL ONのコマンドを使ったのですがその後

`>

というのが出てきて、その後一切のコマンドを受け付けなくなりました。何が原因なのでしょうか?

どなたか、知っていたらどうかご教授よろしくお願いします。

Aベストアンサー

その前に打った中に " か ' で括り初めて括り終えてないと改行を含むデータの入力と認識して入力の終わりだと認識してないのでは

QWin8でパスワードリセットディスクが作成できない

USBは8GBの物で現在は写真などを入れたので残り5GBとなっています。
コントロールパネルからパスワードリセットディスクの作成をクリックしても何も出てきません。
よろしくお願いします。

Aベストアンサー

クリックすれば即座に添付画像のウィザード開始画面が出るはずなのですが・・・
USBメモリを認識していない、という状態なのではありませんか?

Qcreate tableのフィールド名

半角数字っていれられないのでしょうか?入れられるのならやり方教えてください。
半角数字+漢字でやってみたりシングル、ダブルクォーテーションで囲んでみたりしたんですがエラーが出てしまいました。

Aベストアンサー

半角数字だけか、半角数字で始まる列名ですか?
そんなニーズがあるのかと思いますが。。。

標準SQLや主要なRDBMSでは、予約語と同じ列名、特殊文字を含む列名などを使う場合、二重引用符(")で囲みます。
MySQLのMySQL構文モードでは、バッククォート(`)で囲みます。
SQL Serverでは、二重引用符に加え、[ ]を使えます。

単一引用符(')で囲むのは、文字定数です。

今回の場合は、バッククォート(`)で囲めば可能だと思います。

Qパスワードリセットで追加したwin2k の削除法

パスワードリセット法を検索し何とか回復出来ました
ですが追加したwin2k の削除法が解らず そのままです お教え下さい

現在 名前は別名ですがエクスプローラ上で二つ並んでおります
二つでも動いておりますが動きが少し遅いようなのです

最近返事の無い方が多く回答を躊躇したくなりますが当方冷かし等でない限り必ず返事は致します よろしく。

Aベストアンサー

>パスワードリセット法を検索し何とか回復出来ました

 質問者さんの意味するパスワードリセットとは何ですか?
 どうしてパスワードリセットが必要だったのですか?

 どのような手段で回復したのですか? そのへんの経緯が回答者には
把握できません。


>ですが追加したwin2k の削除法が解らず そのままです お教え下さい

 なぜ追加した Win2kを削除しなければならないのですか?


>現在 名前は別名ですがエクスプローラ上で二つ並んでおります

 二つあるというのは何の名前ですか?


>二つでも動いておりますが動きが少し遅いようなのです

 何が2つ動いているのですか? アカウントが2つあるのですか?

 つまり現状が具体的にどうなっているのか分からないので答えようが
ありません。


 多分 Win2kのログオンパスワードを忘れて何らかの手段で回復させた
ところ OS がアカウント毎に2つ存在する状態になってしまったので、
元のアカウントだけのシステムに戻したいと言うことだろうと想像する
ことはできますが、少なくとも、どのような手順で回復させ現在どんな
状況なのか、例えば OS は2つあるのか、1つを2つのユーザーが共用
しているのか等の正確な状況が把握できないのです。

 例えば、回復手段によっては、追加した Win2kを削除すると起動すら
できなくなる可能性もあるわけで、その辺の現状把握が曖昧では曖昧な
回答しか得ることはできないでしょう。
 そういうわけで、パスワードリセットに至った経緯や回復させた方法
そして現在のシステムのインストール状況などをもう少し具体的に補足
した方が回答を得られやすいと思います。


 なお、もし把握できたとしてもオイラにはデータをバックアップして
システムを再セットアップしてください、という程度のアドバイスしか
できない可能性が高いです。

参考URL:http://netwalk-web.hp.infoseek.co.jp/home3/xp-8.htm,http://support.microsoft.com/kb/311578/ja

>パスワードリセット法を検索し何とか回復出来ました

 質問者さんの意味するパスワードリセットとは何ですか?
 どうしてパスワードリセットが必要だったのですか?

 どのような手段で回復したのですか? そのへんの経緯が回答者には
把握できません。


>ですが追加したwin2k の削除法が解らず そのままです お教え下さい

 なぜ追加した Win2kを削除しなければならないのですか?


>現在 名前は別名ですがエクスプローラ上で二つ並んでおります

 二つあるというのは何の名前で...続きを読む

Qcreate時にFOREIGN KEYでエラー

以下のSQL文を実行すると

CREATE TABLE if not exists table_A (
idint(11) not null auto_increment,
company_idint(11) not null,
created_atdatetime NOT NULL,
updated_attimestamp NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;


CREATE TABLE if not exists table_B (
idint(11) not null auto_increment,
from_idint(11) not null,
company_idint(11) not null,
created_atdatetime NOT NULL,
updated_attimestamp NOT NULL,
PRIMARY KEY (id)
FOREIGN KEY (from_id)
REFERENCES table_A(id)
ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

上記を実行すると以下のエラーがでます。

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FOREIGN KEY (from_id)
REFERENCES table_A(id)
ON DELETE CASCADE
) ENGINE=Inn' at line 8

解決方法をご存知の方はご教示頂けますと幸いです。
宜しくお願いいたします。

以下のSQL文を実行すると

CREATE TABLE if not exists table_A (
idint(11) not null auto_increment,
company_idint(11) not null,
created_atdatetime NOT NULL,
updated_attimestamp NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;


CREATE TABLE if not exists table_B (
idint(11) not null auto_increment,
from_idint(11) not null,
company_idint(11) not null,
created_atdatetime NOT NULL,
updated_attimestamp NOT NULL,
PRIMARY KEY (id)
FOREIGN KEY...続きを読む

Aベストアンサー

PRIMARY KEY (id)
FOREIGN KEY (from_id)

の間にカンマが必要では?


人気Q&Aランキング

おすすめ情報