mysql - 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';
推荐阅读
- vue.js - POST 功能返回空值
- python - 具有非数值数据的 Matplotlib 直方图
- python - Sqlalchemy 包含与 join 和 contains_eager 的空关系
- java - Android SimpleDateFormat 在上午和下午返回点
- backbone.js - 来自子视图的主干 JS 事件未触发
- python-3.x - 我怎样才能带回所有条目而不是只带回第一个?
- c# - Resharper 为方法命名参数,但为表达式树命名
- sql - 按 SUM 排序 Oracle 查询而不选择 SUM
- android - 试图将模块添加到项目中。找不到 Gradle DSL 方法:'versionName()'
- java - 避免使用多对多关系 jpa 添加相同的数据