mysql:16340
From: <yata.s15ste@xxxxxxxxxx>
Date: Mon, 23 May 2016 16:28:30 +0900
Subject: [mysql 16340] ストアド内SelectInto句の挙動について(MySQL5.7)
初めて投稿させていただきます。 開発者のたくやと申します。 当方が利用している環境において、 不具合か仕様通りかどうか判断しかねる事象が発生したので、 皆様の知恵をお借りしたいと思い投稿させていただきました。 [概要] MySQL5.7系環境において、 ストアドプロシージャ(もしくはファンクション)内で 非キー項目によるWhere条件を設定し、 Select Into 句を利用したときの挙動が思惑と異なる。 [実行環境] ・Linux RHEL6系 ・MySQL 5.7.10-log Community Server ・スキーマのデフォルト文字コードはUTF-8 [再現手順] 1)前提として、以下テーブルを作っておく。 CREATE TABLE `dtb_test` ( `iddtb_test` int(11) NOT NULL AUTO_INCREMENT, `cd` varchar(12) DEFAULT '', `word` varchar(45) DEFAULT NULL, PRIMARY KEY (`iddtb_test`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; 2)以下データを設定する。 ①iddtb_test ②cd ③word |--------------| |①| ②| ③| |--------------| |1| 1111| aaaa| |2| 2222| bbbb| |3| 3333| cccc| |4| 4444| dddd| |5| 5555| eeee| ---------------- 3)以下ストアドをデモとして作成する。 DELIMITER $$ CREATE PROCEDURE `test_proc`() BEGIN declare var_text text default ''; declare var_text2 varchar(45) default ''; select word,word into var_text,var_text2 from dtb_test where cd = '1111'; select var_text,var_text2; END$$ DELIMITER ; 4)作成したストアドを実行する。 [求める結果として] 最後のSelect文で出力される結果がいずれも[aaaa]となること。 [結果] var_text ->[eeee](こちらが思惑と異なる) var_text2->[aaaa] [補足事項] ・MySQL 5.6.26 Community Server (Windows7)では求める結果var_text ->[aaaa] が出力されました。 ・該当の条件句であるcdをInt型に変更してもvar_text ->[eeee]で出力されまし た。 ・条件句のcdに対してUnique Indexを付与すると、var_text ->[aaaa]で出力され ました。 ・元々は郵便番号TBLのzipcodeで検索をかけるような処理のときに発生した事象の 為、 Unique Indexを仕様的に付与できかねます。 ・Select Into時に Convert(word,char)をするとvar_text ->[aaaa]で出力されま した。 現象が発生してから、補足事項に提示したパターンなどを検証しました。 検証の結果、varchar型の文字列をTEXT型変数に入れる際に 条件句をスルーしてしまうような不具合があるののかなとも思っていますが、 もしかしたらTEXT型とvarchar型が非互換という可能性も考えて、 質問させていただきました。 どなたかご教示いただければ幸いです。 以上、よろしくお願いいたします。
-> 16340 2016-05-23 16:28 [<yata.s15ste@xxxxxxx] ストアド内SelectInto句の挙動について(MySQL5.7) 16341 2016-05-24 11:00 ┗["yoku ts." <yoku0825] Re: [mysql 16340] ストアド内SelectInto句の挙動について(MySQL5.7) 16342 2016-05-24 12:43 ┗[たくや <yata.s15ste@] RE: [mysql 16341] Re: [mysql 16340] ストアド内SelectInto句の挙動について(MySQL5.7) 16343 2016-05-25 14:15 ┗["yoku ts." <yoku0825] Re: [mysql 16342] RE: [mysql 16341] Re: [mysql 16340] ストアド内SelectInto句の挙動について(MySQL5.7) 16344 2016-05-25 15:42 ┗[たくや <yata.s15ste@] RE: [mysql 16343] Re: [mysql 16342] RE: [mysql 16341] Re: [mysql 16340] ストアド内SelectInto句の挙動について(MySQL5.7) 16345 2016-05-25 15:46 ┗["yoku ts." <yoku0825] Re: [mysql 16344] RE: [mysql 16343] Re: [mysql 16342] RE: [mysql 16341] Re: [mysql 16340] ストアド内SelectInto句の挙動について(MySQL5.7) 16346 2016-05-25 16:01 ┗[たくや <yata.s15ste@] RE: [mysql 16345] Re: [mysql 16344] RE: [mysql 16343] Re: [mysql 16342] RE: [mysql 16341] Re: [mysql 16340] ストアド内SelectInto句の挙動に