MySQL:在复制密钥更新时插入-更新不起作用



在MySQL中INSERT ON DUPLICATE KEY UPDATE更新不起作用,但插入工作正常。

我已经尽了一切可能。

我当前的索引是username当前pk是id

这是我的问题,

insert into 
myDB.auth_tbl 
(username, `password`, first_name, last_name, email, is_super, is_active, date_joined) 
values 
('me', 'encrypt', 'me', '', 'me@gmail.com', 0, 1, '0000-00-00')
on duplicate key update `id` = LAST_INSERT_ID(id), `username` = 'me';

注意:我查阅了许多参考资料,并尝试了许多答案。其中之一是,我试过这个问题,但仍然不适用于我。

我错过什么了吗?

这里有一个示例:

CREATE TABLE IF NOT EXISTS `auth_tbl` (
`id` int(11),
`username` varchar(32),
`password` varchar(32),
`first_name` varchar(32),
`last_name` varchar(32),
`email` varchar(32),
`is_super` int(3) ,
`is_active` int(3) ,
`date_joined`  date NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY(`username`) 
) DEFAULT CHARSET=utf8;

insert into 
auth_tbl 
(username, `password`, first_name, last_name, email, is_super, is_active, date_joined) 
values 
('me', 'encrypt', 'me', '', 'me@gmail.com', 0, 1, '1900-01-01')
on duplicate key update  `email` = 'me2@gmail.com';

insert into 
auth_tbl 
(username, `password`, first_name, last_name, email, is_super, is_active, date_joined) 
values 
('me', 'encrypt', 'me', '', 'me@gmail.com', 0, 1, '1900-01-01')
on duplicate key update  `email` = 'me2@gmail.com';

最新更新