По какой-то причине, когда я пытаюсь обновить запись в моей таблице, я получаю сообщение об ошибке «Дублирующая запись« 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 в течение долгого времени и никогда не видел, чтобы это происходило в ОБНОВЛЕНИИ.Кстати, я не использую «mykey» в качестве ключа шифрования!
EDIT Вот мой вывод 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_ids.