【MySQL】navicat for Mysql查询数据不能直接修改

我们使用navicat for Mysql工具编写SQL时,查询出来的数据并不能直接进行修改操作,只能再次打开表找到需要修改的数据进行修改数据,但有些时候表字段比较多,且表中的数据量也比较大,我们并不能快速定位到需要修改的那条记录。这个问题困扰了不少同学。今天,小编就在这里教教大家,如何在新建查询时对查询的结果进行修改。

首先,我们来看看问题的现象。原来的sql语句如下:

SELECT
	jobName,
	jobGroup,
	jobStatus,
	cronExpression,
	description,
	beanClass,
	springId,
	methodName,
	createTime,
	updateTime 
FROM
	`schedule_job`;

结果如下: 

如果表中没有设置或添加一列作为primary key(主键)的话,是无法直接进行修改操作的。

解决办法:我们只需要添加或设置一列id,并设置为primary key并且自动递增,就可以进行修改操作了。

在上述SQL中,我们需要在SQL上稍作改动就可以在新建查询窗口直接对数据进行修改了,在SQL中加上对主键Id字段或将select后面的查询的条件改为【*】就可以了。

SQL语句如下:

SELECT
	jobId,
	jobName,
	jobGroup,
	jobStatus,
	cronExpression,
	description,
	beanClass,
	springId,
	methodName,
	createTime,
	updateTime 
FROM
	`schedule_job`;

或者 

SELECT
	* 
FROM
	`schedule_job`;

添加ID查询后的结果如下图所示: 

这时候却发现【只读】属性不见了 ,那么我们就可以对在查询窗口对数据进行修改了。

那么问题来了,这只是对单表的操作,若是对多张表关联查询,查询的结果是否还能在查询窗口进行修改操作呢?能?为什么?不能?又为什么?

最后这个问题就留给大家去讨论吧,欢迎大家在评论区进行讨论与留言。

### 如何使用 Navicat 批量修改数据库中的数据 #### 使用 SQL 查询进行批量更新操作 对于需要批量更改的数据,可以通过编写高效的 SQL 更新语句来实现。例如,在 MySQL 中执行如下命令可以一次性更新多个记录: ```sql UPDATE 表名称 SET 列名称 = 新值 WHERE 条件; ``` 如果要针对特定条件下的多条记录做相同变更,则可以在 `WHERE` 子句中指定这些条件[^1]。 #### 通过图形界面工具完成批处理任务 除了手动写SQL外,Navicat 提供了直观易用的操作方式来进行大批量的数据编辑工作。具体步骤如下所示(注意这里不涉及具体的“首先”、“然后”的描述): - 用户可以选择目标表格并进入其结构视图; - 对于想要调整的字段,默认选项处可设置新的固定数值作为默认值; - 完成设定之后记得及时保存所做的改动以确保生效[^2]; 另外一种情况是当涉及到整个库内众多表统一性质上的变动时,比如改变字符编码格式等较为复杂的场景下,也可以借助系统自带的信息模式(information_schema)配合动态构建 ALTER TABLE 命令串的方式来达成目的[^4]: ```sql SELECT CONCAT('ALTER TABLE ', table_name, ' CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;') FROM information_schema.tables WHERE table_schema='您的数据库名'; ``` 上述查询会返回一系列用于转换各张表字符集的具体指令字符串列表,将其复制粘贴到查询窗口运行就能快速实施大规模定制化改造作业。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张思全

实践,方能出真知!打赏博主吧!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值