使用存储过程将数据从MS Sql导入MySQL

使用存储过程将数据从MS Sql导入MySQL,mysql,sql-server,Mysql,Sql Server,我正在将数据导入到使用MySQL的应用程序中。数据来自MS SQL。由于MS SQL db中的表名每月都会更改,因此除了从其他表获取数据外,我们还使用存储过程连接表名 问题是,我们似乎正在丢失MS SQL端的PK标识符,因此我的MySQL数据库不会接收数据。我们应该使用视图吗?是否有一种方法可以在存储过程中保留PK标识。谢谢 以下是对我的问题的更好解释: 1.主机数据库表名称每月更改(YYYYMMtablename) 2.需要从两个表中选择列 3.外部数据库(MySQL)需要一个查询,如SELE

我正在将数据导入到使用MySQL的应用程序中。数据来自MS SQL。由于MS SQL db中的表名每月都会更改,因此除了从其他表获取数据外,我们还使用存储过程连接表名

问题是,我们似乎正在丢失MS SQL端的PK标识符,因此我的MySQL数据库不会接收数据。我们应该使用视图吗?是否有一种方法可以在存储过程中保留PK标识。谢谢

以下是对我的问题的更好解释: 1.主机数据库表名称每月更改(YYYYMMtablename) 2.需要从两个表中选择列 3.外部数据库(MySQL)需要一个查询,如SELECTA、b、c、d、from tablename
4.我无法更改应用程序的工作方式,但我可以对数据库进行更改。

您可以在SQL Server和MySQL上的insert语句中指定标识值

MySQL允许显式插入标识值,所以实际上不需要标识插入选项,或者换句话说,它总是在MySQL中设置的。


对于MS SQL Server,请阅读文档。

您可以在SQL Server和MySQL上的insert语句中指定标识值

MySQL允许显式插入标识值,所以实际上不需要标识插入选项,或者换句话说,它总是在MySQL中设置的。


对于MS SQL Server,请阅读文档。

可能我不够清楚。存储过程需要将pk信息带过来,以便my db接受它。我无法更改用于将数据导入(MySql)数据库的java代码。谢谢。您只需要将该列添加到select语句中,该语句检索数据并在insert中使用该值。如果你不能选择列,那么你需要神秘的魔力来猜测值;)Ricardo,作为pk的列在存储过程中。但是由于数据操作(也从另一个表中检索信息),pk列似乎没有保留其作为pk的身份。我认为这里的问题在于您陈述问题的方式。我想通过“不保留其作为pk的身份”您的意思是希望目标表应该将该列作为pk?这与数据无关。您只需要更改表本身的属性。修改tart表并将PK设置为该列。或目标表不存在,由存储过程创建?然后在创建目标表后包含ALTER语句并设置PK属性。ALTER table PERSONESS ADD PRIMARY KEY(P_Id)可能我不够清楚。存储过程需要将pk信息带过来,以便my db接受它。我无法更改用于将数据导入(MySql)数据库的java代码。谢谢。您只需要将该列添加到select语句中,该语句检索数据并在insert中使用该值。如果你不能选择列,那么你需要神秘的魔力来猜测值;)Ricardo,作为pk的列在存储过程中。但是由于数据操作(也从另一个表中检索信息),pk列似乎没有保留其作为pk的身份。我认为这里的问题在于您陈述问题的方式。我想通过“不保留其作为pk的身份”您的意思是希望目标表应该将该列作为pk?这与数据无关。您只需要更改表本身的属性。修改tart表并将PK设置为该列。或目标表不存在,由存储过程创建?然后在创建目标表后包含ALTER语句并设置PK属性。ALTER table PERSONESS ADD PRIMARY KEY(P_Id)