Я полагаю, что вы могли бы основать это на следующем (вместо присоединения базы данных, 2 был добавлен ко 2-му набору имен таблиц (для удобства), кроме того, к данным был добавлен префикс C2 для 2-го набора таблиц).): -
DROP TABLE IF EXISTS Name;
DROP TABLE IF EXISTS Name2;
DROP TABLE IF EXISTS Category;
DROP TABLE IF EXISTS Category2;
CREATE TABLE Category (Id INTEGER PRIMARY KEY NOT NULL UNIQUE,Category STRING);
INSERT INTO Category (Category, Id) VALUES ('B', 2), ('A', 1);
CREATE TABLE Name (Id INTEGER PRIMARY KEY UNIQUE NOT NULL,
CatId INTEGER
REFERENCES Category (Id) ON DELETE CASCADE ON UPDATE CASCADE MATCH SIMPLE, Name STRING);
INSERT INTO Name (Name,CatId,Id)VALUES ('A',1,1),('AB',1,3 ),('B',2,2);
CREATE TABLE Category2 (Id INTEGER PRIMARY KEY NOT NULL UNIQUE,Category STRING);
INSERT INTO Category2 (Category, Id) VALUES ('C2B', 2), ('C2A', 1);
CREATE TABLE Name2 (Id INTEGER PRIMARY KEY UNIQUE NOT NULL,
CatId INTEGER
REFERENCES Category2 (Id) ON DELETE CASCADE ON UPDATE CASCADE MATCH SIMPLE, Name STRING);
INSERT INTO Name2 (Name,CatId,Id)VALUES ('C2A',1,1),('C2AB',1,3 ),('C2B',2,2);
UPDATE Category2 SET id = id + (Max((SELECT max(id) FROM Category),(SELECT max(id) FROM Category2)));
UPDATE Name2 SET id = id + (Max((SELECT Max(id) FROM name) ,(SELECT max(id) FROM name2)));
SELECT * FROM Category2;
SELECT * FROM Name2;
INSERT INTO Category SELECT * FROM Category2 WHERE 1;
INSERT INTO name SELECT * FROM name2 WHERE 1;
SELECT * FROM Category;
SELECT * FROM Name;
- Обратите внимание, что вы упомянули AUTOINCREMENT, но не включили его, поэтому проверка на наибольшее значение sqlite_sequence не была включена.
- Вышеуказанное зависит отCASCADE В ОБНОВЛЕНИИ, для каскадного увеличения значения Category.id вплоть до CatId.
Это работает путем нахождения наибольшего идентификатора обеих таблиц с одинаковой схемой и последующего обновления идентификаторов таблицы добыть объединены путем добавления найденного наибольшего идентификатора к идентификаторам всех строк.Когда таблицы являются таблицей категорий, обновленные идентификаторы каскадно добавляются к соответствующей таблице имен.
Процесс выполняется как для пары таблиц категории, так и для пары таблиц имен.
Результат(последний запрос): -
![enter image description here](https://i.stack.imgur.com/aC387.png)