在本地数据库中,根据本地数据库中的表数据,更新远程数据库中的表数据,请问如何写?
如:
本地表:table_a,远程表 table_b 更新条件 table_a.name = table_b.name
更新字段:table_b.age = table_a.age
如:
本地表:table_a,远程表 table_b 更新条件 table_a.name = table_b.name
更新字段:table_b.age = table_a.age
解决方案 »
- 求一条sql语句
- mysql下hash分区一个很郁闷的问题,大虾帮忙解决
- 查询表中不相等的记录
- -------急问----mysql 存储过程异常处理------------路人请进------(附企业核心代码)-------------
- 高手帮我把这个sqlserver的 trigger改成mysql的吧, 急!
- 求一SQL,急!在线等!!!
- mysql的基本数据类型中有没有逻辑、货币、图像这三种类型呢?
- 不可意思的问题,大家来看看怎么解决!
- show engine innodb status\G 查看最近死锁信息
- 如何计算mysql数据库表中单条记录所占据的磁盘容量大小?或者找出单条记录中占据磁盘容量的最大值
- postgresql sql问题请教
- 编号从新排序后,表内数据排列就乱了,
update (SELECT * FROM dblink('myconn','SELECT * FROM table_b') AS t(a int, b text)) a
set a.age=b.age from table_a a where b.age = a.age
是有结果的,但是
出错了
ERROR: syntax error at or near "("
LINE 2: update (
^
2,执行第二步:
update
(
select username,age from dblink('select username,age from table_b') as t(username varchar(60),age int)
) b
set b.age = a.age from table_a a where b.username = a.username ;这样在执行第二卡时,报错了
ERROR: syntax error at or near "("
LINE 2: update (
^是不是这种写法有问题啊????
UPDATE table_a a1 SET age=t1.age
FROM (SELECT * FROM dblink('myconn','SELECT * FROM table_b') AS t(a int, b text)) as t1 WHERE a1.name=t1.name
where b.age = a.age 类似这样效果的写法table_a(本地表) 谢谢,
测试 了一下,只能用远程表替换本地表,替换远程表要用DBLINK_EXEC
准备使用的连接名;省略此参数则使用匿名连接 连接字串
一个连接信息串,如前面 dblink_connect 里描述的一样。 sql
你希望在远端数据库里执行的SQL命令,比如 insert into foo values(0,'a','{"a0","b0","c0"}'). fail_on_error
如果为真(省略时的缺省),那么在远端连接抛出的错误也会在本地抛出。如果为假,那么远端的错误会在本地报告为一个 NOTICE,而函数的返回值会设置为 ERROR。 返回值 返回状态要么是命令的状态字串,要么是 ERROR。 例子 select dblink_connect('dbname=dblink_test_slave');
dblink_connect
----------------
OK
(1 row)
select dblink_exec('insert into foo values(21,''z'',''{"a0","b0","c0"}'');');
dblink_exec
-----------------
INSERT 943366 1
(1 row)
select dblink_connect('myconn', 'dbname=regression');
dblink_connect
----------------
OK
(1 row)
select dblink_exec('myconn', 'insert into foo values(21,''z'',''{"a0","b0","c0"}'');');
dblink_exec
------------------
INSERT 6432584 1
(1 row)
select dblink_exec('myconn', 'insert into pg_class values (''foo'')',false);
NOTICE: sql error
DETAIL: ERROR: null value in column "relnamespace" violates not-null constraint
dblink_exec
-------------
ERROR
(1 row)
我现在想将本地的一个表(假设 table_a)数据全部插入到远程的一个表(table_b)中
table_a,table_b 表结构完全一致,请问在本地数据库中,怎么写啊 ???--表结构如下
create table table_a
(
name character varying(30),
age int
)