@SKD115

В sql запросе выдает ошибку когда пытаюсь создать несколько таблиц через один файл. Можно ли так делать вообще и если да то как правильно?

Вот полный запрос
spoiler
create table if not exists users (
    id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE,
    chat_id INTEGER UNIQUE,
    username_tg TEXT UNIQUE,
    surname TEXT,
    name TEXT,
    patronymic TEXT,
    class_digit INTEGER,
    class_letter TEXT,
    year_of_birth INTEGER,
    watch_right INTEGER,      
    rent_right INTEGER,
    release_right INTEGER,      
    order_right INTEGER,
    add_right INTEGER,      
    remove_right INTEGER,
    useradd_right INTEGER,      
    userdelete_right INTEGER,
    adminadd_right INTEGER,      
    adddelete_right INTEGER,
    glavadmin INTEGER
)

create table if not exists items_tag (
    id INTEGER,
    tag INTEGER,
	FOREIGN KEY (id) REFERENCES items(id),
	FOREIGN KEY (tag) REFERENCES tags(id))

create table if not exists tags (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    tag TEXT)

create table if not exists items (
    id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE,
    parent_id INTEGER,
    description TEXT,
    name TEXT,
    model TEXT,
    tags integer,
    FOREIGN KEY(parent_id) REFERENCES items (id),
    FOREIGN KEY(tags) REFERENCES tag_table (tag))

create table if not exists real_items (
    id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE,
    item_id INTEGER,
    count INTEGER,
    place TEXT,
    state TEXT,
    importance INTEGER,
    respman_id INTEGER,
    FOREIGN KEY(item_id) REFERENCES items (id),
    FOREIGN KEY(respman_id) REFERENCES users (id))

запускаю файл через sqlite3 в питоне таким кодом.
spoiler
import sqlite3

with sqlite3.connect('basedolg.db') as db:
    cursor = db.cursor()
    with open('sql/table_items.sql', 'r') as sql_file:
        sql = sql_file.read()
        cursor.execute(sql)

позже будет перенесен в основной код
  • Вопрос задан
  • 28 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы