MYSQL-如何将数据插入另一个服务器DB表
在插入到第一个服务器的表之后,我尝试将数据插入到第二个服务器的DB表中,如下结构所示 第二台服务器:MYSQL-如何将数据插入另一个服务器DB表,mysql,database,Mysql,Database,在插入到第一个服务器的表之后,我尝试将数据插入到第二个服务器的DB表中,如下结构所示 第二台服务器: use SecondServerDB; CREATE TABLE user ( `ID` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, `age` smallint(6) NOT NULL, PRIMARY KEY (`ID`) ) ENGINE=InnoDB; 在第二台服务器中创建了表之后,我在第
use SecondServerDB;
CREATE TABLE user (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`age` smallint(6) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB;
在第二台服务器中创建了表之后,我在第一台服务器中创建了表,如下所示
DELIMITER $$
CREATE TRIGGER remote_insert_Testing AFTER INSERT ON remote_user2 FOR EACH ROW
BEGIN
INSERT INTO user (ID,name, age) VALUES (NEW.ID,NEW.name, NEW.Age);
END $$
DELIMITER ;
INSERT INTO remote_user2 (ID,name, age) VALUES (1,'Name',27);
第一台服务器:
use FirstServerDB;
CREATE TABLE remote_user2 (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`age` smallint(6) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=FEDERATED
DEFAULT CHARSET=latin1
CONNECTION='mysql://MysqlUserName:MysqlUserPassword@SecondServer.MyDomain.com:3306/SecondServerDB/user';
在第二个服务器中创建联邦表后,在同一个服务器中创建触发器,如下所示
DELIMITER $$
CREATE TRIGGER remote_insert_Testing AFTER INSERT ON remote_user2 FOR EACH ROW
BEGIN
INSERT INTO user (ID,name, age) VALUES (NEW.ID,NEW.name, NEW.Age);
END $$
DELIMITER ;
INSERT INTO remote_user2 (ID,name, age) VALUES (1,'Name',27);
如果我像下面这样运行insert查询
DELIMITER $$
CREATE TRIGGER remote_insert_Testing AFTER INSERT ON remote_user2 FOR EACH ROW
BEGIN
INSERT INTO user (ID,name, age) VALUES (NEW.ID,NEW.name, NEW.Age);
END $$
DELIMITER ;
INSERT INTO remote_user2 (ID,name, age) VALUES (1,'Name',27);
然后显示,错误代码:1146。表“FirstServerDB.user”不存在
我在哪里犯错
注意:我在谷歌上搜索,发现我正在尝试的是可能的。对于可能的请尝试在触发器中使用完全限定的表名:
DELIMITER $$
CREATE TRIGGER remote_insert_Testing
AFTER INSERT ON FirstServerDB.remote_user2 FOR EACH ROW
BEGIN
INSERT INTO SecondServerDB.user (ID,name, age)
VALUES (NEW.ID, NEW.name, NEW.Age);
END $$
DELIMITER ;
如果不介意通过普通查询移动数据,可以尝试以下操作:
INSERT INTO SecondServerDB.user (ID, name, age)
SELECT ID, name, age
FROM FirstServerDB.remote_user2
我仍然看到SecondServerDB.user不存在。