MySQL Casual Fukuoka vol.4 20141021
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

MySQL Casual Fukuoka vol.4 20141021

on

  • 91 views

MySQL Casual Talks in Fukuoka vol.4

MySQL Casual Talks in Fukuoka vol.4

ONLY_FULL_GROUP_BYについて

Statistics

Views

Total Views
91
Views on SlideShare
81
Embed Views
10

Actions

Likes
0
Downloads
0
Comments
0

1 Embed 10

https://twitter.com 10

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

MySQL Casual Fukuoka vol.4 20141021 Presentation Transcript

  • 1. ONLY_FULL_GROUP_BYについて MySQL Casual Talks in Fukuoka vol.4 2014/10/21
  • 2. 自己紹介 名前: 松崎 学 所属: 株式会社キャム http://www.cam-net.co.jp/ (SaaSでERPサービスを提供中) Twitter: matsumana 職業:ソフトウェアエンジニア (プログラマ、ITインフラ全般)
  • 3. MySQL 5.7.5のリリース ノートを見て 気になった箇所について 調べてみました
  • 4. Changes in MySQL 5.7.5 (2014-09-25, Milestone 15) http://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-5.html
  • 5. MySQL 5.7 Reference Manualを確認してみる http://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sql-mode-setting
  • 6. MySQL 5.6 Reference Manualを確認してみる http://dev.mysql.com/doc/refman/5.6/en/sql-mode.html#sql-mode-setting
  • 7. ONLY_FULL_GROUP_BYといえば ! SQLアンチパターンの アンビギュアスグループ (曖昧なグループ)
  • 8. MySQLやSQLiteでは、 こういうテーブルに対して
  • 9. こういうSQLがエラーにならずに 結果を返すアレです ※sql_modeにONLY_FULL_GROUP_BYをセットすれば このようなSQLをエラーにする事ができます
  • 10. 実際に確認してみます CentOS 6.5 x86_64 MySQL公式yumリポジトリを使用 ! MySQL 5.6.21 MySQL 5.7.5
  • 11. デフォルトのmy.cnfには 以下の値が設定されていたので、まずコメントアウトします sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES ※公式rpmでインストールすると、5.6ではmy.cnfが2つ存在するので注意 (5.7.5では/etc/my.cnfのみでした) /usr/my.cnf /etc/my.cnf ! 参考ページ MySQL5.6が勝手にsql_modeを書き換えてくれる話 http://yoku0825.blogspot.jp/2013/03/mysql56sqlmode.html
  • 12. MySQL 5.6のsql_modeデフォルト値 MySQL 5.7のsql_modeデフォルト値
  • 13. 5.7のsql_modeデフォルト値で 曖昧なSQLがエラーになる事を確認
  • 14. 該当箇所のソースを確認してみる 5.6 http://bazaar.launchpad.net/~mysql/mysql-server/5.6/view/head:/sql/sys_vars.cc#L2857 5.7 http://bazaar.launchpad.net/~mysql/mysql-server/5.7/view/head:/sql/sys_vars.cc#L3223
  • 15. 5.7系で変更が入ったリビジョン rev 8655 (2014-08-24) http://bazaar.launchpad.net/~mysql/mysql-server/5.7/revision/8655/sql/sys_vars.cc#sql/sys_vars.cc http://d Worklog ev.mysql.com/worklog/task/?id=2489
  • 16. MySQL5.7にバージョンアップ する際には注意しましょう!
  • 17. おしまい