Opened 14 years ago
Closed 14 years ago
#484 closed defect (fixed)
MySQLの設定でSQL ModesにSTRICT_TRANS_TABLESが指定されている環境下で動作しない
Reported by: | takanashi | Owned by: | ogawa |
---|---|---|---|
Priority: | minor | Milestone: | OpenPNE2.8RC1 |
Component: | core【OpenPNEコア部分】 | Version: | |
Keywords: | Cc: |
Description
http://trac2.openpne.jp/ticket/320
セットアップ時のデータベース作成sqlのNOTNULL制約つきカラムにはdefault値を入れる
あるのが正しいと思うので入れる。
Change History (7)
comment:1 Changed 14 years ago by
Milestone: | OpenPNE2.8開発タスク → OpenPNE2.8beta6 |
---|---|
Owner: | changed from tejimaa to ogawa |
comment:2 Changed 14 years ago by
Status: | new → assigned |
---|
comment:4 Changed 14 years ago by
Milestone: | OpenPNE2.8beta7 → OpenPNE2.8RC |
---|
comment:5 Changed 14 years ago by
Component: | Documents【ドキュメント】 → core【OpenPNEコア部分】 |
---|---|
Summary: | セットアップ時のデータベース作成sqlのNOTNULL制約つきカラムにはdefault値を入れる → NOT NULL制約の付いたTEXT型カラムに値を指定せずにINSERTした場合にMySQLのエラーとなる |
Type: | enhancement → defect |
まず、BLOB と TEXT カラムは DEFAULT を持つ事ができませんので、「NOT NULL制約つきカラムにはdefault値を入れる」対応は望ましくありません。(ただし、MySQLでwarningが出た状態で動作することは確認できました)
DEFAULTを指定するのではなく、NOT NULL 制約を付けない対応にすると、PHPで mysql_fetch_assoc 等を呼んだときに空文字列()ではなくNULLが返ってきてしまうので正しく動作しない場合があることが考えられます。
全てのinsert文で、BLOB/TEXTカラムには値を入れるよう修正するのが最も望ましい修正になるかと思います。この対応であれば、修正箇所が特定しやすく、今までの動作には影響が出ない。
[参考]
comment:6 Changed 14 years ago by
Summary: | NOT NULL制約の付いたTEXT型カラムに値を指定せずにINSERTした場合にMySQLのエラーとなる → MySQLの設定でSQL ModesにSTRICT_TRANS_TABLESが指定されている環境下で動作しない |
---|
Note: See
TracTickets for help on using
tickets.
Windows 上の MySQL でエラー再現できるとのこと。(みゅみゅさん情報)