怎么替换数据库中所有表中的数据

怎么替换数据库中所有表中的数据,第1张

1理论上没可能一次性实现;

2实际上很多朋友都会碰到这种需求,怎么解决呢?

1)把所有表的结构和数据导出为文本的.sql文件,用文本编辑软件word或者dw等都可以,用替换方法把字符a替换为b,但这有可能误 *** 作,所以要慎重查看;

2)替换完以后,再利用mysql数据管理软件,把sql文件导入到新的数据库中,进行严格测试,通过后;把旧版数据备份(主要为了安全着想),然后导入新的数据即可完成所需 *** 作;

mysql的语法和Sqlserver的语法还是有区别的:

update tb_restaurant,tb_restPre set tb_restaurantCdate = tb_restPreCdate

where tb_restaurantid=tb_restPreReplaceUid and tb_restPreid=1 and tb_restaurantid=1

给你四种方法,安全可靠

有数据库a和数据库b,数据库a里有表table1,数据库b里有表table2

现在要把表table1里的记录复制到table2中,不同情况采用不同方法:

1 table1和table2表结构相同

use b

insert into table2 select from adbotable1

2 table1和table2表结构不相同

use b

insert into table2(c1,c2) select c1,c2 from adbotable1

coolxiaoyi:c1,c2为需要复制的列。

3 如果还没有创建表table2,可以直接将table1的表结构和记录都复制到数据库b中

use b

select into table2 from adbotable1

coolxiaoyi:这样做有一个问题,就是有时主外键关系不能复制过去(不知道什么原因),需要在执行完sql语句后自己再设置一下主外键。

4 注意table2中是否有自增长字段

如果有自增长字段,使用以上sql语句时会报错:仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'table2'中 的标识列指定显式值。

coolxiaoyi:可以先修改table2表,去掉自增长标识,复制完记录后再修改回来。

或者用2中的sql语句,不复制自增长字段,复制其他字段。

mysql中自带有替换,去处首尾指定字符的函数,如trim

update

test

set

name=trim(TRAILING

'\r\n'

FROM

`name`);

其中

test为指定表,name为指定字段,'\r\n'为要去除的字符

update 表名a set 需要修改的字段名col=(select 字段名col from (select from 表名a ) as b where 等于0的字段id='0' )where 等于0的字段id='0';

由于我没有你的表结构,不知道你具体要什么样的 *** 作。而且,你的问题也比较模糊。我只能这么写给你一个思路,你记住MYsql中update不能直接使用select的结果 要给个别名才行。

可以使用多种方式实现:

1: 同时更新两种表

update A set 字段=XX where 条件

update B set 字段=XX where 条件

2:使用触发器

在A表建立触发器 更新B表信息

create trigger on A for update

update B set 字段=XX where 条件(使用inserted ,deleted表)

----------------

调用直接使用更新语句更新A表即可

update A set 字段=XX where 条件

以上就是关于怎么替换数据库中所有表中的数据全部的内容,包括:怎么替换数据库中所有表中的数据、mysql用一个表数据替换另一个表中的数据、sql 替换表等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9774417.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存