отправить данные из MySQL в базу данных MS-SQL

0

У меня есть имя студента таблицы с полями, именем и списком в базе данных my-sql. Кроме того, у меня есть один и тот же ученик табличного имени в базе данных MS-SQL с полями, именем и списком.

Когда значение, вставленное в мою студенческую таблицу базы данных MySQL, мне нужно автоматически вставить то же значение в таблицу студента базы данных MS-SQL.

  • 0
    Во-первых, как MySQL, так и SQL Server в отношении типов данных - они все же разные поставщики. Вот почему то, что вы просите, довольно необычно ... Если бы вы пошли другим путем - с SQL Server на MySQL, было бы легко использовать экземпляр Linked Server.
  • 0
    это означает, что невозможно перенести данные с mysql на сервер MS-SQL ??
Теги:
sql-server
data-migration

2 ответа

1

У вас может быть cron, который запускается так часто, чтобы вставить записи, которые он еще не видел.

// Assuming the primary key is an id int auto_increment
startId = getLastIdFromPreviousRun();
lastId = 0;
offset = 0;
while(true) {
    mysqlrs = mysqlQuery(
        "SELECT * FROM users WHERE id > ? ORDER BY id LIMIT ?, 1000",
        startId,
        offset
    );
    if (!mysqlrs || mysqlrs.count() == 0)
        break;
    foreach(mysqlrs as mysqlrow) {
        mssqlInsert('users', mysqlrow);
        lastId = mysqlrow['id'];
    }
    offset += 1000;
}
if (lastId) {
    setLastIdForNextRun(lastId);
}
  • 0
    Спасибо за ваше руководство ...
1

Почему вы используете две отдельные базы данных, чтобы сделать то же самое? Вы не можете выбрать его? Если вы просто пытаетесь экспортировать и импортировать данные, вы должны иметь возможность экспортировать как csv из одной базы данных и импортировать в другую, а затем использовать только базу данных, в которой вы нуждаетесь.

Если я не предполагаю, что вы могли бы написать класс, который обертывает вокруг двух объектов базы данных и фактически выполняет каждый запрос в обеих базах данных.
например:

public class database
{

public DbConnection mySqlConnection;
public DbConnection sqlConnection;
/// <summary>
/// open two db connections
/// </summary>
   public database()
   {
      mySqlConnection =//string that will open the mysql

      mySqlconnection = //insert string will open the sql server database
   }

   public excecuteNonQuery(String SQL)
   {
     //cmd1 = mysql command
     //cmd2 = mssql command

     cmd1.excecute(SQL);
     cmd2.execute(SQL);

   }
}

И просто создавайте функции, которые обрабатывают подготовку команд и вставляют данные, чтобы операции выполнялись одновременно в обеих базах данных. Мне неизвестен какой-либо метод репликации базы данных mysql в базу данных mssql.

  • 0
    Спасибо за ваш ответ ... Если миграция данных невозможна ... тогда мы должны пойти на это решение. В основном, это последнее решение ..

Ещё вопросы

Сообщество Overcoder
Наверх
Меню