2

我有 2 个火鸟数据库

c:\db1.gdb
c:\db2.gdb

两个数据库架构相同,因此都包含一个表

MyTable
-------
Id int
Name varchar(50)
...etc

它保证两个数据库上的数据不同,但是我需要从 db2.MyTable 复制到 db1.MyTable

一个要求是我使用 firebird isql 工具来执行此操作。

我将如何首先使用 isql

-Connect to both db's in one isql command window
-run a sql statement that would do a select all from one table in db2 and insert it into the same table in db1

我正在使用火鸟 1.5

4

2 回答 2

2

这在 FB 1.5 中是不可能的。您可以在 Firebird 2.5 中使用新的“执行语句...外部”功能来做到这一点,这使得从触发器、过程和代码块内部访问另一个 firebird 数据库成为可能。

于 2012-08-23T12:41:32.850 回答
2

如果你真的必须这样做,isql那么你可以编写select产生语句的insert语句;在 db2 中运行 select,将结果保存到某个文件中,然后在 db1 中执行语句。选择语句将类似于

select 'insert into MyTable(id, name) values ('|| cast(id as varchar(10)) ||','''|| name ||''');' from MyTable;

但是,使用 Clever Components 的Interbase DataPump之类的东西更容易完成这项工作。

于 2012-08-23T15:47:59.803 回答