ここの情報は古いです。ご理解頂いた上でお取り扱いください。

Opened 13 years ago

Closed 12 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 13 years ago by ogawa

Milestone: OpenPNE2.8開発タスクOpenPNE2.8beta6
Owner: changed from tejimaa to ogawa

comment:2 Changed 12 years ago by ogawa

Status: newassigned

Windows 上の MySQL でエラー再現できるとのこと。(みゅみゅさん情報)

comment:3 Changed 12 years ago by ogawa

Milestone: OpenPNE2.8beta6OpenPNE2.8beta7

beta7 へ持ち越します。

comment:4 Changed 12 years ago by ogawa

Milestone: OpenPNE2.8beta7OpenPNE2.8RC

comment:5 Changed 12 years ago by ogawa

Component: Documents【ドキュメント】core【OpenPNEコア部分】
Summary: セットアップ時のデータベース作成sqlのNOTNULL制約つきカラムにはdefault値を入れるNOT NULL制約の付いたTEXT型カラムに値を指定せずにINSERTした場合にMySQLのエラーとなる
Type: enhancementdefect

まず、BLOB と TEXT カラムは DEFAULT を持つ事ができませんので、「NOT NULL制約つきカラムにはdefault値を入れる」対応は望ましくありません。(ただし、MySQLでwarningが出た状態で動作することは確認できました)

DEFAULTを指定するのではなく、NOT NULL 制約を付けない対応にすると、PHPで mysql_fetch_assoc 等を呼んだときに空文字列()ではなくNULLが返ってきてしまうので正しく動作しない場合があることが考えられます。

全てのinsert文で、BLOB/TEXTカラムには値を入れるよう修正するのが最も望ましい修正になるかと思います。この対応であれば、修正箇所が特定しやすく、今までの動作には影響が出ない。

[参考]

comment:6 Changed 12 years ago by ogawa

Summary: NOT NULL制約の付いたTEXT型カラムに値を指定せずにINSERTした場合にMySQLのエラーとなるMySQLの設定でSQL ModesにSTRICT_TRANS_TABLESが指定されている環境下で動作しない

comment:7 Changed 12 years ago by ogawa

Resolution: fixed
Status: assignedclosed

対応しました。

Note: See TracTickets for help on using tickets.