Phpmyadmin 中 id 字段的 NULL 条目

NULL entry at id field in Phpmyadmin

我从一个 phpmyadmin 数据库中导出了 sql,并在另一个 phpmyadmin 数据库中导入了相同的内容。

create table语句如下

CREATE TABLE IF NOT EXISTS `h_stats` (
  `Id` int(11) DEFAULT NULL,
  `Category` varchar(50) DEFAULT NULL,
  `Success` int(11) DEFAULT NULL,
  `OutcomeFailure` int(11) DEFAULT NULL,
  `ThCount` int(11) DEFAULT NULL,
  `OCount` int(11) DEFAULT NULL,
  `HDate` varchar(50) DEFAULT '0',
  `Count` int(11) DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

插入的sql文件我也导出如下

INSERT INTO `h_stats` (`Id`, `Category`, `Success`, `Failure`, `ThCount`, `OCount`, `HDate`, `Count`) VALUES
(13, 'Hits', 31303, 8828, 8893, 30372, '2015-04-07', 40151), 

注:

当我尝试在 id NULL 值的位置插入新行时。 谁能建议我在 create table 语句中更改什么。

需要将id定义为主键并自增。

CREATE TABLE IF NOT EXISTS `h_stats` (
  `Id` int(11)  NOT NULL AUTO_INCREMENT,
  `Category` varchar(50) DEFAULT NULL,
  `Success` int(11) DEFAULT NULL,
  `OutcomeFailure` int(11) DEFAULT NULL,
  `ThCount` int(11) DEFAULT NULL,
  `OCount` int(11) DEFAULT NULL,
  `HDate` varchar(50) DEFAULT '0',
  `Count` int(11) DEFAULT '0',
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

因此,当您为 id 添加 null 时,自动增量将发挥作用并将其设置为插入中的下一个值。

请注意,这将强制您为 id 设置唯一值,因此在执行插入时将 id 保留到插入语句中。东西如

insert into h_stats (`Category`,`Success` ...) values ( ....);