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 替换表等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)