主キー (unsigned int) をゼロにして、dim_channel テーブルに 1 つのレコードを挿入しようとしています。
Mysql コマンド:
INSERT INTO dim_channel
set channel_id=0,name='Other',parent_channel_id=0,parent_channel_name='Other';
結果:
select * from dim_channel;
+------------+-------+-------------------+---------------------+
| channel_id | name | parent_channel_id | parent_channel_name |
+------------+-------+-------------------+---------------------+
| 1 | Other | 0 | Other |
+------------+-------+-------------------+---------------------+
channel_id の値が 0 ではなく 1 になっていることに注意してください。
なぜこれが起こるのか誰でも知っています。
ちなみに、レコードは次のように更新できます。 update dim_channel set channel_id=0 where channel_id=1;
そもそも channel_id=0 のレコードを挿入できない理由を知りたいだけです。
どうもありがとう。
====== テストする MySQL コマンド ====
-- テーブルを作成
CREATE TABLE `dim_channel` (
`channel_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` char(80) DEFAULT NULL,
`parent_channel_id` int(10) unsigned NOT NULL DEFAULT '0',
`parent_channel_name` varchar(80) DEFAULT NULL,
PRIMARY KEY (`channel_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
-- レコードを挿入
INSERT INTO dim_channel set channel_id=0,name='Other',parent_channel_id=0,parent_channel_name='Other';
-- 結果を見る
select * from dim_channel;