在MySql中创建IBM DB2 Federated表



我正在进行一个项目,需要将MySQL数据库表中的数据与IBM DB2数据库表中数据连接起来。由于在我的Java项目中这是两个不同的数据源,所以没有真正简单的方法来连接这些数据。

在搜索中,我读到了关于联合表的文章。因此,我试图在MySQL数据库中创建一个表,该表连接回IBMDB2表。

到目前为止,我已经尝试过通过连接字符串来实现这一点

create table UGFPEV00
(
EID        CHAR(4)      default ' '               not null,
EDESCR     CHAR(25)     default ' '               not null,
EGROUP     CHAR(1)      default ' '               not null,
ESTATUS    CHAR(1)      default ' '               not null,
EUSERID    VARCHAR(10)  default ''                not null,
ETSTAMP    TIMESTAMP(6) default CURRENT_TIMESTAMP not null,
EMODID     VARCHAR(10)  default ''                not null,
EMODTSTAMP TIMESTAMP(6) DEFAULT 0                   not null
)
ENGINE=FEDERATED
CONNECTION='mysql://tomcat:*****@10.*****.21';

但这是的回应

SQL Error (1432): Can't create federated table. The data source connection string 'mysql://tomcat:*****@10.*****.21' is not in the correct format

我也尝试过使用CREATE SERVER路由,但这会产生不同的错误。

CREATE SERVER PGPRD
FOREIGN DATA WRAPPER mysql
OPTIONS (USER 'tomcat', PASSWORD '*****', HOST '10.64.7.21', DATABASE '%');
create table UGFPEV00
(
EID        CHAR(4)      default ' '               not null,
EDESCR     CHAR(25)     default ' '               not null,
EGROUP     CHAR(1)      default ' '               not null,
ESTATUS    CHAR(1)      default ' '               not null,
EUSERID    VARCHAR(10)  default ''                not null,
ETSTAMP    TIMESTAMP(6) default CURRENT_TIMESTAMP not null,
EMODID     VARCHAR(10)  default ''                not null,
EMODTSTAMP TIMESTAMP(6) DEFAULT 0                   not null
)
ENGINE=FEDERATED
CONNECTION='PGPRD/ugfpev00';

对此的响应是

SQL Error (1434): Can't create federated table. Foreign data src error:  database: '%'  username: 'tomcat'  hostname: '10.*****.21'

我是不是完全忽略了联邦和联邦对象这一点?或者MySQL不支持我正在做的事情?

https://dev.mysql.com/doc/refman/8.0/en/federated-storage-engine.html

FEDERATED存储引擎允许您访问远程MySQL数据库中的数据。。。

请注意,它不允许联合到DB2数据库或任何其他品牌。

此外https://dev.mysql.com/doc/refman/8.0/en/federated-usagenotes.html确认:

以下项目表示联邦存储引擎支持和不支持的功能:

  • 远程服务器必须是MySQL服务器

只需使用此命令CREATE SERVER 'servername' FOREIGN DATA WRAPPER mysql OPTIONS (USER 'username', HOST 'IPaddress', DATABASE 'databasename', PORT 3306,Password 'yourpassword');

然后运行此命令:DROP TABLE IF EXISTS tablename; CREATE TABLE tablename ( Id int(11) DEFAULT NULL, Name varchar(255) DEFAULT NULL ) ENGINE=FEDERATED CONNECTION='servername/TableName';

注意:为了确保检查表创建语句show create table 'table name',联邦表和实际表必须具有相同的名称和表结构

最新更新