【发布时间】:2013-05-14 17:44:49
【问题描述】:
我正在尝试将一条记录插入到 dim_channel 表中,主键为零(无符号整数)。
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 的值为 1,而不是我预期的 0。
任何人都知道为什么会这样。
顺便说一句,我可以将记录更新为: 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;
【问题讨论】:
-
mysql 假设 0 表示 auto_increment 列的“给我下一个 ID”。如果你真的想要一个不属于它的 0,那么在插入之后使用更新。
-
@user645280 很棒的评论!