更新时MySQL复制主键错误

时间:2018-09-25 16:51:53

标签: mysql sql-update

由于某种原因,每当我尝试更新表中的记录时,都会收到“键'PRIMARY'的重复条目'5687'”错误。我的查询是:

UPDATE 
    `patients` 
SET
    first_name=AES_ENCRYPT('Floyd','mykey'),
    last_name=AES_ENCRYPT('Resler','mykey'),
    birthdate='1899-01-01 00:00:00',
    sex='M',
    account=AES_ENCRYPT('123-456-789','mykey'),
    user_id='0',
    hospital_id='2' 
WHERE 
    patient_id='5687'

此表的任何更新都会发生这种情况。我从事MySQL已有很长时间了,从未见过在UPDATE上发生这种情况。顺便说一句,我不是真的使用“ mykey”作为加密密钥!

编辑 这是我的CREATE TABLE输出:

CREATE TABLE `patients` (
  `patient_id` int(11) NOT NULL AUTO_INCREMENT,
  `first_name` varchar(255) NOT NULL DEFAULT '',
  `last_name` varchar(255) NOT NULL DEFAULT '',
  `birthdate` date NOT NULL DEFAULT '0000-00-00',
  `sex` char(1) NOT NULL DEFAULT '',
  `date_stamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `account` varchar(255) NOT NULL DEFAULT '',
  `user_id` int(11) NOT NULL,
  `deleted` bit(1) NOT NULL,
  `hospital_id` int(11) NOT NULL,
  `deleted_by_id` int(11) NOT NULL,
  `deleted_date` datetime NOT NULL,
  `no_piccs` int(11) NOT NULL,
  `deceased` tinyint(4) DEFAULT '0',
  `converted` tinyint(4) DEFAULT NULL,
  PRIMARY KEY (`patient_id`),
  KEY `fname` (`first_name`),
  KEY `lname` (`last_name`),
  KEY `deleted` (`deleted`),
  KEY `hospital_id` (`hospital_id`)
) ENGINE=MyISAM AUTO_INCREMENT=5938 DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC

我做了仔细检查,以确保没有重复的Patient_id。

0 个答案:

没有答案