我试图在dim_channel表中插入一条记录,主键为零(unsigned int).
Mysql命令:
INSERT INTO dim_channel
set channel_id=0,name='Other',parent_channel_id=0,parent_channel_name='Other';
Run Code Online (Sandbox Code Playgroud)
结果:
select * from dim_channel;
+------------+-------+-------------------+---------------------+
| channel_id | name | parent_channel_id | parent_channel_name |
+------------+-------+-------------------+---------------------+
| 1 | Other | 0 | Other |
+------------+-------+-------------------+---------------------+
Run Code Online (Sandbox Code Playgroud)
请注意,channel_id得到的值为1,而不是我预期的0.
任何人都知道为什么会这样.
顺便说一下,我可以将记录更新为:update dim_channel set channel_id = 0其中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
Run Code Online (Sandbox Code Playgroud)
- 插入记录
INSERT INTO dim_channel set channel_id=0,name='Other',parent_channel_id=0,parent_channel_name='Other';
Run Code Online (Sandbox Code Playgroud)
- 看结果
select * from dim_channel;
Run Code Online (Sandbox Code Playgroud)
小智 43
我知道这是一个老帖子,但无论如何:
使用:
SET sql_mode='NO_AUTO_VALUE_ON_ZERO';
Run Code Online (Sandbox Code Playgroud)
在Dimensions中插入0值之前.