У меня есть два БД dataSet.По сути, это внутренняя БД, а другая БД - Клиентская БД, и я новичок в JS и кодировании.Я хочу сравнить, выполнив несколько запросов на выборку, если оба набора данных синхронизированы.
Я подключился к обеим базам данных и выполнил запрос на выборку для обеих БД.в настоящее время у меня есть жестко закодированные смещение и ограничение (нужна помощь в том, как я могу пойти дальше и поставить запрос в цикле до тех пор, пока «Нет данных для отображения сообщения»).Как только это будет сделано, первый результат БД содержит детали идентификатора, необходимо ввести идентификатор во второй Запрос и сравнить результат с первым результатом БД.
Функция подключения к БД
import {ConnectionOptionsReader, getConnectionManager} from "typeorm";
export async function getDBConnection(dbName: any){
const createConnectionOptions = await new ConnectionOptionsReader().get(dbName);
const connection = await getConnectionManager().create(createConnectionOptions).connect();
return connection;
}
Контрольный пример -
import {getDBConnection} from "../utils/createDBConnection";
test("", async () => {
jest.setTimeout(100000);
const connectionDB = await getDBConnection("default");
<Want to loop Offet and Limit until the query triggers no data to show>
const Query1 = await connectionDB.manager.query("SELECT v.id AS id, t.published AS publisedDate,t.updated AS lastDate, d.description AS summary FROM db.user v INNER JOIN db.descriptions d ON v.id = d.id INNER JOIN db.time_latency t ON t.id = v.id WHERE DATE(v.created) < '2015-04-02' AND v.user_id = '111' limit 1000 offset 1");
Result dataset displays in below format for DB1 -
[ RowDataPacket {
id: '111',
publisedDate: 2003,
lastModifiedDate: 2003,
summary: 'Hello' },
RowDataPacket {
id: '222',
publisedDate: 1999,
lastModifiedDate: 1999,
summary: 'hi' },
RowDataPacket {
id: '333',
publisedDate: 1998,
lastModifiedDate: 2012,
summary: 'bye' },
RowDataPacket {
id: '444',
publisedDate: 1998,
lastModifiedDate: 1998,
summary: 'ola' }
]
Мне нужно выбрать все идентификаторы из набора данных выше и добавить их ниже. Выберите запрос к базе данных (v.id)
const connectionDB2 = await getDBConnection("db2");
const Query2 = await connectionDB2.manager.query("SELECT id, publishedDate, lastModifiedDate, summary FROM apr.V WHERE apr.V.v = "+v.id+");
когда я вставляю указанный выше идентификатор, скажем, 444 в запрос выше, результат -
[ RowDataPacket {
id: '444',
publisedDate: 1998,
lastModifiedDate: 1998,
summary: 'ola' }
]
После получения результата мне нужно сравнить
DB 1 with DB2 -
id = 444 id = 444
publisedDate= 1998 publisedDate= 1998
lastModifiedDate: 1998 lastModifiedDate: 1998
summary=ola summary=ola
если summary = ola в DB1 и Summary = OLLA в DB2, тогда должно быть напечатано сообщение для этого идентификатора, это неверно.
await connectionDB.close();
await connectionDB2.close();
})