プロが教える店舗&オフィスのセキュリティ対策術

MySQL5.1.14をインストールをしたところ、4.1で動いていたプログラムが軒並みエラーストップ。
どうも、空白を入れるとエラーになるようで、5.1へ移行出来なくて困っています。どなたかご教授をお願いします。

環境は
Windows2000Pro
MySQL 5.1.14-beta

サンプルのテーブルは
drop table if exists addressbook;
CREATE TABLE addressbook(
id smallint(4) UNSIGNED NOT NULL auto_increment,
name1 varchar(20) default NULL,
birthday date default NULL,
PRIMARY KEY (id)
) ENGINE=MyISAM DEFAULT CHARSET=sjis;

INSERT INTO addressbook VALUES
('','名前1','2006-12-22'),
('','','');
で次のエラーが出る。
ERROR 1366 (HY000): Incorrect integer value: '' for column 'id' at row 1

A 回答 (3件)

なるほど、そういう質問でしたか。

失礼しました。

調べてみましたけど、ちょっとムリそうでしたねぇ。

エラーの内容からすると、integerに空行はinsertできない旨ですよね。
となると、数値フィールドに''をinsertしたら、NULLと見なすパラメータ等のオプションを探すしかないわけです。
ネットで調べる程度では、わかりませんでした。
    • good
    • 1
この回答へのお礼

そうなんです。
「数値フィールドに''をinsertしたら、NULLと見なすパラメータ等のオプション」が欲しかったのです。
いろいろ調べていただきありがとうございました。
数値フィールドに''を入れないように作り変える方向で検討します。

お礼日時:2006/12/27 21:03

'' これがマズイのではないですかねぇ。


NULLでOKだと思います。

この回答への補足

説明不足ですみません。
NULL、0、スペースなどは通るのです。
5.1から空白が入らないため、4.1で動いていたWebアプリが動かなくて困っています。
5.1から仕様が変わったとするとWebアプリを作り変え無ければなりません、何とか作り変えないで済ませるためにはと思ったのですが。解決方法は無いですかね。

補足日時:2006/12/27 13:52
    • good
    • 0

NOT NULL制約を外す。

この回答への補足

やってみましたが。同じエラーです。
date,time,数値カラムが空白を受け付けません。
MySQL5から変更になったのでしょうか?

補足日時:2006/12/26 10:53
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!