phpMyAdmin を使用して、いくつかの NOT NULL 列を含むテーブルを作成しました。
CREATE TABLE `TEST` (`ID` INT PRIMARY KEY AUTO_INCREMENT,
`Firstname` VARCHAR(20) NOT NULL,
`Lastname` VARCHAR(20) NOT NULL)
INSERT 操作には問題ありません。データベースは NULL フィールドを正しく設定できません。
INSERT INTO `TEST`(`Firstname`, `Lastname`) VALUES ("Peter", null)
#1048 - Column 'Lastname' cannot be null
受け入れられたものは次のとおりです。
INSERT INTO `TEST`(`Firstname`, `Lastname`) VALUES ("Peter", "Smith")
1 row inserted.
Inserted row id: 1 (Query took 0.0004 sec)
しかし、NULL 以外のフィールドを持つレコードを正常に作成した後、データベースはこれらのフィールドを NULL に更新することを許可します。
UPDATE `TEST` SET `Lastname`=NULL WHERE `ID` = 1
1 row affected. (Query took 0.0006 sec)
「NULL」と「NULL」も試しましたが、データベースはそれらをフィールドに文字列として入れました。
私はこの問題について本当に混乱しています。これは phpMyAdmin のバグですか、それとも何か間違っていますか?