我可以在mySQL中添加带条件的值吗
我试图给一个列添加一个数值,该列的“AuthDate”是“06/05/20”,而“Time”是“1P-2P” 我运行了以下查询:我可以在mySQL中添加带条件的值吗,mysql,sql,datetime,sql-update,where-clause,Mysql,Sql,Datetime,Sql Update,Where Clause,我试图给一个列添加一个数值,该列的“AuthDate”是“06/05/20”,而“Time”是“1P-2P” 我运行了以下查询: update main set calls = 2072 where authdate = '06/05/20' and time = '1P - 2P'; *main=表名 calls=列名 但我得到错误代码1175,你正在使用安全更新模式 有人知道我出错的原因吗?您的数据库或会话已被删除。除其他事项外,这禁止不具有where子句的update,或具有列不是键(未
update main
set calls = 2072
where authdate = '06/05/20'
and time = '1P - 2P';
*main=表名
calls=列名
但我得到错误代码1175,你正在使用安全更新模式
有人知道我出错的原因吗?您的数据库或会话已被删除。除其他事项外,这禁止不具有
where
子句的update
,或具有列不是键(未索引)的where
子句的update
。即使存在索引,但optimize选择不使用它,查询也会中止
这更像是一个防止初学者犯错误的选项。如果您确实知道自己在做什么,可以在会话级别禁用该选项:
set sql_safe_updates = 0;
旁注:我对状况有怀疑authdate='06/05/20'
:
- 如果
属于类似autdate
的数据类型,则应为其提供合法的日期字符串,如:date
(或authdate='2020-06-05'
?)'2020-05-06'
- 如果是字符串,那么。。。考虑将其存储为<代码>日期<代码>;由于许多原因,将日期存储为字符串是不好的做法,应该避免