Mysql DataGrip中的更新SQL无效
我在DataGrip上编写了一个MySQL更新SQL来更新错误的数据:Mysql DataGrip中的更新SQL无效,mysql,jetbrains-ide,datagrip,Mysql,Jetbrains Ide,Datagrip,我在DataGrip上编写了一个MySQL更新SQL来更新错误的数据: update common_express_track set step = 135 where express_id in (33, 235, 237) and business_source = 0 and step = 0 and content = 'Out For Delivery' order by content; 我执行了它,控制台显示“在7s530ms内影响了61行”,然后我执行了另一个查询语句以确保数据
update common_express_track set step = 135 where express_id in (33, 235, 237) and business_source = 0 and step = 0 and content = 'Out For Delivery' order by content;
我执行了它,控制台显示“在7s530ms内影响了61行”,然后我执行了另一个查询语句以确保数据已被修改
select * from common_express_track where express_id in (33, 235, 237) and business_source = 0 and step = 0 and content = 'Out For Delivery' order by content;
然后控制台显示“在3s 751ms内检索到0行”
但是当我重新启动DataGrip并再次执行查询语句时,我得到了61行,这意味着update语句不起作用,我不知道为什么,是因为缓存还是其他原因
如何解决这个问题 执行查询时,应使用
Autocommit
然后单击数据库视图中的表,您将看到refresh
尝试在查询中使用
Autocommit
,在浏览数据时使用refresh
。它应该会有帮助。使用mysql控制台并在那里检查您的选择的,其中包含step=0
,而更新将其设置为135…@Usagi Miyamoto-是的,但问题的其余部分解释了为什么,这是okIn语句`但当我重新启动datagrip并再次执行查询语句时,`-你是说第二次查询吗?顺便问一下,“重新启动datagrip”是什么意思?好的!它工作了,我把事务控制选项改为自动,这次数据真的被修改了。非常感谢你!顺便说一句,你能告诉我手动选项和自动选项的区别吗?如果没有自动提交,你应该单击提交来真正执行你的查询,但是你也有回滚的可能。我建议在生产数据库上使用此选项(如果您在更新之前未选择),但当您开发时,使用自动提交和确认任何查询会更简单,您不会忘记这一点。自动和手动模式:提交按钮或⌘进入→ 提交数据,这意味着您的本地更改(突出显示)将提交到数据库。如果您处于手动模式,则不会提交此事务。从关联菜单中选择“还原”,或⌘⌥(过去是⌘Z,但恢复不是撤消,对吗?)→ 还原选定行的未提交的本地更改。仅在手动模式下:提交按钮或⇧⌘⌥进入→ 提交事务。如果您有未提交的本地更改(再次突出显示),则会在提交之前自动提交这些更改。回滚按钮→ 如果事务未提交,则回滚该事务。