2

Есть две базы данных: trade_points.db(в ней таблица points) и база данных tab3.db (c таблицей album) Как можно сделать, чтобы первое значение из столбца uid (таблицы points) заполняло первые 25 строк столбца tpuid (таблицы album ), соответственно второе следующие 25 и т.д.. А в соседний столбец merch (таблицы album) просто заносились числа: 1 в первые 25 строк,потом число 2 в следующие 25 и т.д..Код для б.д tab3:

import sqlite3
import random
data = []
a=0

for _ in range(50):
a+=1 uid=a city=0 adress=0 period='Еженедельно' merchfio=str(random.randint(1,10)) merch=1 tpuid=1 data.append((uid, city, adress, period, merchfio, merch, tpuid))

conn = sqlite3.connect("tab3.db") cursor = conn.cursor() cursor.execute("""CREATE TABLE album( UID, CITY, ADDRESS, PERIOD, MERCH_FIO, MERCH, TP_UID)""")

cursor.executemany("INSERT INTO album VALUES (?,?,?,?,?,?,?)", data) conn.commit()

1 Answers1

1

Используйте команду ATTACH DATABASE:

$ sqlite3 a.tmp.db
CREATE TABLE users (id INTEGER PRIMARY KEY, login TEXT);
INSERT INTO users (id, login) VALUES (1, 'ivan');
$ sqlite3 b.tmp.db
CREATE TABLE profiles (id INTEGER PRIMARY KEY, body TEXT);
INSERT INTO profiles (id, body) VALUES (1, 'i am ivan');
$ sqlite3 a.tmp.db
ATTACH DATABASE './b.tmp.db' AS bdb;
SELECT * FROM users JOIN bdb.profiles USING(id);
1|ivan|i am ivan

Документация: https://www.sqlite.org/lang_attach.html

Ainar-G
  • 16,042