MySQL插入相同的值

时间:2015-11-26 18:26:37

标签: mysql sql sql-insert

我在MySQL中偶然发现了奇怪的行为。

假设我表中只有一条记录

| id | oib |
|----|-----|
| 1  |  5  |

Field oib 是唯一的。

INSERT INTO `test` (`id`, `oib`) VALUES (NULL, '6')

我得到以下异常

Duplicate entry '5' for key 'oib_UNIQUE'

无论我试图保存什么价值,这都会继续下去。 任何人都知道是什么原因造成的。我从未见过它。

更新

这是CREATE TABLE语句:

    CREATE TABLE IF NOT EXISTS `user` (
  `id` int(25) NOT NULL AUTO_INCREMENT,
  `email` varchar(45) DEFAULT NULL,
  `password` varchar(255) DEFAULT NULL,
  `first_name` varchar(45) DEFAULT NULL,
  `last_name` varchar(45) DEFAULT NULL,
  `dob` int(25) DEFAULT NULL,
  `address` varchar(255) DEFAULT NULL,
  `zip` int(6) DEFAULT NULL,
  `oib` int(11) DEFAULT NULL,
  `position` tinyint(4) DEFAULT NULL,
  `role` varchar(45) DEFAULT NULL,
  `status` tinyint(4) DEFAULT NULL,
  `note` mediumtext,
  PRIMARY KEY (`id`),
  UNIQUE KEY `email_UNIQUE` (`email`),
  UNIQUE KEY `oib_UNIQUE` (`oib`)
)

2 个答案:

答案 0 :(得分:2)

您无法在ID主键

中插入空值

答案 1 :(得分:0)

你确定你的表有oib ='5'的一条记录吗?

您无法在主键中插入null。