MySQL 5.6 で General error: 1364 Field ’{COLUMN_NAME}’ doesn’t have a default value エラーの対処

MySQL 5.5 から MySQL 5.6 への移行検証中に INSERT で以下のようなエラーが発生しました。

SQLSTATE[HY000]: General error: 1364 Field '{COLUMN_NAME}' doesn't have a default value

ググってみると同じ問題を Stack Overflow で発見。

結論からいうと MySQL 5.6 から MySQL のシステム変数である sql_mode のデフォルト値が設定されるようになり、それによりエラーが発生していました。

早速システム変数 sql_modeSHOW VARIABLES みてみると…、

mysql> SHOW VARIABLES LIKE 'sql_mode';
+---------------+--------------------------------------------+
| Variable_name | Value                                      |
+---------------+--------------------------------------------+
| sql_mode      | STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION |
+---------------+--------------------------------------------+
1 row in set (0.00 sec)

STRICT_TRANS_TABLESNO_ENGINE_SUBSTITUTION という値が入っている。

それぞれの値の説明は公式リファレンスに記載されていました。

つづきをみる

git rm で “fatal: pathspec ‘path/to/~’ did not match any files” が発生 ⇒ git commit -a

特定ディレクトリ内で前方一致削除 git rm -rf prefix_* を実行。

# git rm -rf path/to/images/prefix_*
rm 'path/to/images/prefix_a.png'
rm 'path/to/images/prefix_b.png'
rm 'path/to/images/prefix_c.png'
rm 'path/to/images/prefix_d.png'
rm 'path/to/images/prefix_e.png'
rm 'path/to/images/prefix_f.png'
rm 'path/to/images/prefix_g.png'

git status で状況確認。

# git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#	deleted:    path/to/images/prefix_a.png
#	deleted:    path/to/images/prefix_b.png
#	deleted:    path/to/images/prefix_c.png
#	deleted:    path/to/images/prefix_d.png
#	deleted:    path/to/images/prefix_e.png
#	deleted:    path/to/images/prefix_f.png
#	deleted:    path/to/images/prefix_g.png
#
# Changed but not updated:
#   (use "git add/rm <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#	deleted:    path/to/images/prefix_ x.jpg
#

なぜか path/to/images/prefix_ x.jpg だけがインデックスに追加されない。

# git rm -rf path/to/images/prefix_ x.jpg
fatal: pathspec 'path/to/images/prefix_' did not match any files
    git rm pathspec did not match

直で add/rm してもダメだ。

こういうときは git commit -a です。

# git commit -a

git commit -a は変更のあったファイルを自動検出してコミットできるのです。

このあたりのことが分からない方は 入門git - Travis Swivegood で勉強しましょう。

参考になるかも

入門git - Travis Swivegood

Git

iOS 7 Safari のユーザーエージェント - iPhone, iPad, iPod touch

※ 一部記載に間違いがあったため、修正しました。

iOS バージョン 7 系のユーザーエージェント一覧です。

iOS 7.0

// iPhone
Mozilla/5.0 (iPhone; CPU iPhone OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53

// iPad
Mozilla/5.0 (iPad; CPU OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53

// iPod touch
Mozilla/5.0 (iPod touch; CPU iPhone OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53

2014/09/23 … iPad の User-Agent が Mozilla/5.0 (iPad; CPU iPhone OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53 となっていたのを Mozilla/5.0 (iPad; CPU OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53 に修正しました。Akittty さんご指摘ありがとうございます。

iOS 7.0.1

// iPhone
Mozilla/5.0 (iPhone; CPU iPhone OS 7_0_1 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A470a Safari/9537.53

// iPad
Mozilla/5.0 (iPad; CPU OS 7_0_1 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A470a Safari/9537.53

// iPod touch
Mozilla/5.0 (iPod touch; CPU iPhone OS 7_0_1 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A470a Safari/9537.53

iOS 7.0.2

// iPhone
Mozilla/5.0 (iPhone; CPU iPhone OS 7_0_2 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B511 Safari/9537.53

// iPad
Mozilla/5.0 (iPad; CPU OS 7_0_2 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A501 Safari/9537.53

// iPod touch
Mozilla/5.0 (iPod touch; CPU iPhone OS 7_0_2 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A501 Safari/9537.53

iOS 7.0.3

// iPhone
Mozilla/5.0 (iPhone; CPU iPhone OS 7_0_3 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B511 Safari/9537.53

// iPad
Mozilla/5.0 (iPad; CPU OS 7_0_3 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B511 Safari/9537.53

// iPod touch
Mozilla/5.0 (iPod touch; CPU iPhone OS 7_0_3 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B511 Safari/9537.53

iOS 7.0.4

// iPhone
Mozilla/5.0 (iPhone; CPU iPhone OS 7_0_4 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B554a Safari/9537.53

// iPad
Mozilla/5.0 (iPad; CPU OS 7_0_4 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B554a Safari/9537.53

// iPod touch
Mozilla/5.0 (iPod touch; CPU iPhone OS 7_0_4 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B554a Safari/9537.53

iOS 7.0.5

// iPhone
Mozilla/5.0 (iPhone; CPU iPhone OS 7_0_5 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B554a Safari/9537.53

// iPad
Mozilla/5.0 (iPad; CPU OS 7_0_5 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B554a Safari/9537.53

// iPod touch
Mozilla/5.0 (iPod touch; CPU iPhone OS 7_0_5 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11B554a Safari/9537.53

iOS 7.0.6

// iPhone
Mozilla/5.0 (iPhone; CPU iPhone OS 7_0_6 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Mobile/11B651

// iPad
Mozilla/5.0 (iPad; CPU OS 7_0_6 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B651 Safari/9537.53

// iPod touch
Mozilla/5.0 (iPod touch; CPU iPhone OS 7_0_6 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11B651 Safari/9537.53

iOS 7.1

// iPhone
Mozilla/5.0 (iPhone; CPU iPhone OS 7_1 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D167 Safari/9537.53

// iPad
Mozilla/5.0 (iPad; CPU OS 7_1 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D167 Safari/9537.53

// iPod touch
Mozilla/5.0 (iPod touch; CPU iPhone OS 7_1 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D167 Safari/9537.53

iOS 7.1.1

// iPhone
Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_1 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D201 Safari/9537.53

// iPad
Mozilla/5.0 (iPad; CPU OS 7_1_1 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11D201 Safari/9537.53

// iPod touch
Mozilla/5.0 (iPod touch; CPU iPhone OS 7_1_1 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D201 Safari/9537.53

iOS 7.1.2

// iPhone
Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_2 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D257 Safari/9537.53

// iPad
Mozilla/5.0 (iPad; CPU OS 7_1_2 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11D257 Safari/9537.53

// iPod touch
Mozilla/5.0 (iPod touch; CPU iPhone OS 7_1_2 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D257 Safari/9537.53

Google Search Appliance を搭載した iPad は下記のような UA になるようです。

Mozilla/5.0 (iPad; CPU OS 7_1_1 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) GSA/4.1.0.31802 Mobile/11D201 Safari/9537.53

iOS 7 以外のユーザーエージェント

ref.

WPF: XAML, C# で TextBlock などの要素内の文字列を改行させる

要素のプロパティ内で改行するには以下のサンプルコードのように &#10; を挿入します。

// XAML
<TextBlock Text="あいうえお&#10;かきくけこ" />

// C#
TextBlock txt = new TextBlock();
txt.Text = "あいうえお" + Environment.NewLine + "かきくけこ";

// C# 環境変数を使わないで
TextBlock txt = new TextBlock();
txt.Text = "あいうえお¥nかきくけこ";

// C# プログラマティックに
TextBlock txt = new TextBlock();
txt.Inlines.Add(new Run("あいうえお"));
txt.Inlines.Add(new Run(Environment.NewLine));
txt.Inlines.Add(new Run("かきくけこ"));

次にプロパティ内ではなく、文字列をタグで挟んでいる場合は <LineBreak /> を挿入します。

// XAML
<TextBlock>
    あいうえお<LineBreak />
    かきくけこ
</TextBlock>

ふむふむ。

参考記事

C#、WPF おすすめ書籍

WPF おすすめ書籍#1 C# おすすめ書籍#2

WPF: XAML、C# で Border の角丸(Corner Radius)

初の C# 記事です。

WPF で角丸を実現したいときありますよね。 Border のときは CornerRadiusRectangle のときは RadiusX, RadiusY をプロパティーで指定すれば角丸になります。

以下、サンプルコードです。
using 使えばコードは短くなりますが、敢えて全部書いちゃいます

Border のサンプルコード

// XAML
<Border 
    BorderBrush="#FF000000" 
    BorderThickness="1" 
    Background="#FFFFFFFF" 
    Padding="5" 
    CornerRadius="5" />

// C#
myBorder = new System.Windows.Controls.Border();
myBorder.BorderBrush = (Brush)new BrushConverter().ConvertFromString("#FF000000");
myBorder.BorderThickness = new System.Windows.Thickness(1);
myBorder.Background = (Brush)new BrushConverter().ConvertFromString("#FFFFFFFF");
myBorder.Padding = new System.Windows.Thickness(5);
myBorder.CornerRadius = new CornerRadius(5);

Rectangle のサンプルコード

つづきをみる