0 / 0 / 0
Регистрация: 03.12.2019
Сообщений: 21

Создание таблиц в postgresSQL

08.02.2023, 14:34. Показов 774. Ответов 7

Студворк — интернет-сервис помощи студентам
Создал БД products, хочу в ней создать таблицы:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import asyncpg
import asyncio
async def main():
                    connection = await asyncpg.connect(host='127.0.0.1',
                                                                         port=5432,
                                                                         user='postgres',
                                                                         database='products',
                                                                         password='password')
                    statements = [CREATE_BRAND_TABLE,
                                        CREATE_PRODUCT_TABLE,
                                        CREATE_PRODUCT_COLOR_TABLE,
                                        CREATE_PRODUCT_SIZE_TABLE,
                                        CREATE_SKU_TABLE,
                                        SIZE_INSERT,
                                        COLOR_INSERT]
                    print('Создается база данных product...')
                    for statement in statements:
                              status = await connection.execute(statement)
                              print(status)
                    print('База данных product создана!')
                    await connection.close()
asyncio.run(main())

Лог ошибки:
Traceback (most recent call last):
File "C:\Users\DARK\Desktop\Python\5_3.py ", line 23, in <module>
asyncio.run(main())
File "C:\Users\DARK\AppData\Local\Programs\Py thon\Python38\lib\asyncio\runners.py", line 43, in run
return loop.run_until_complete(main)
File "C:\Users\DARK\AppData\Local\Programs\Py thon\Python38\lib\asyncio\base_events.py ", line 608, in run_until_complete
return future.result()
File "C:\Users\DARK\Desktop\Python\5_3.py ", line 9, in main
statements = [CREATE_BRAND_TABLE,
NameError: name 'CREATE_BRAND_TABLE' is not defined

Версия 3.8.0. Почему не создаются таблицы?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.02.2023, 14:34
Ответы с готовыми решениями:

Нужно из этих таблиц с помощью запроса "Создание таблиц" сделать новую таблицу
Даны таблицы, между собой не связаны. Нужно из этих таблиц с помощью запроса &quot;Создание таблиц&quot; сделать новую таблицу. Делаю все по...

Создание базы данных, создание таблиц в MS SQL Server из программы на C++ Builder 6.0
Здравствуйте. Не могу найти источника знаний по созданию базы данных в удалённом MS SQL Servere. В базе данных необходимо создать таблицы и...

Создание базы данных на лету, создание и заполнение таблиц в базе DB (Paradox? или..).
Здравствуйте Профи! --- Видел я &quot;простенькую&quot; (exe-шник небольшого размера, запускается сразу, без предварительной установки)...

7
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,695
Записей в блоге: 29
08.02.2023, 15:36
Цитата Сообщение от zenit_champion Посмотреть сообщение
CREATE_BRAND_TABLE
это константа? не вижу в коде и питон тоже
0
0 / 0 / 0
Регистрация: 03.12.2019
Сообщений: 21
08.02.2023, 15:51  [ТС]
операторы создания таблиц

statements = [CREATE_BRAND_TABLE,
CREATE_PRODUCT_TABLE,
CREATE_PRODUCT_COLOR_TABLE,
CREATE_PRODUCT_SIZE_TABLE,
CREATE_SKU_TABLE,
SIZE_INSERT,
COLOR_INSERT]
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,695
Записей в блоге: 29
08.02.2023, 16:03
zenit_champion, повторяю вопрос - откуда все это взято, где эти константы прописаны, к какому типу они принадлежат?
в питоне нельзя просто написать имя не сообщив откуда ты его взял и что оно значит. Вот я и интересуюсь откуда ты это взял?
0
0 / 0 / 0
Регистрация: 03.12.2019
Сообщений: 21
08.02.2023, 16:13  [ТС]
сами таблицы с типами данных:


Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
CREATE_BRAND_TABLE = \
                   """
                    CREATE TABLE IF NOT EXISTS brand(
                        brand_id SERIAL PRIMARY KEY,
                        brand_name TEXT NOT NULL
                    );"""
 
CREATE_PRODUCT_TABLE = \
                     """
                    CREATE TABLE IF NOT EXISTS product(
                        product_id SERIAL PRIMARY KEY,
                        product_name TEXT NOT NULL,
                        brand_id INT NOT NULL,
                        FOREIGN KEY (brand_id) REFERENCES brand(brand_id)
                    );"""
 
CREATE_PRODUCT_COLOR_TABLE = \
                           """
                            CREATE TABLE IF NOT EXISTS product_color(
                                product_color_id SERIAL PRIMARY KEY,
                                product_color_name TEXT NOT NULL
                            );"""
 
CREATE_PRODUCT_SIZE_TABLE = \
                          """
                            CREATE TABLE IF NOT EXISTS product_size(
                                product_size_id SERIAL PRIMARY KEY,
                                product_size_name TEXT NOT NULL
                            );"""
 
CREATE_SKU_TABLE = \
                 """
                CREATE TABLE IF NOT EXISTS sku(
                    sku_id SERIAL PRIMARY KEY,
                    product_id INT NOT NULL,
                    product_size_id INT NOT NULL,
                    product_color_id INT NOT NULL,
                    FOREIGN KEY(product_id)
                    REFERENCES product(product_id),
                    FOREIGN KEY (product_size_id)
                    REFERENCES product_size(product_size_id),
                    FOREIGN KEY (product_color_id)
                    REFERENCES product_color(product_color_id)
                );"""
 
COLOR_INSERT = \
             """
            INSERT INTO product_color VALUES(1, 'Blue');
            INSERT INTO product_color VALUES(2, 'Black');
            """
 
SIZE_INSERT = \
            """
            INSERT INTO product_size VALUES(1, 'Small');
            INSERT INTO product_size VALUES(2, 'Medium');
            INSERT INTO product_size VALUES(3, 'Large');
            """
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,695
Записей в блоге: 29
08.02.2023, 16:17
Лучший ответ Сообщение было отмечено Fudthhh как решение

Решение

zenit_champion, значит они лежат в другом файле, раз интерпретатор их не видит, импортируй тот модуль где они объявлены.
1
0 / 0 / 0
Регистрация: 03.12.2019
Сообщений: 21
08.02.2023, 17:41  [ТС]
благодарю
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
08.02.2023, 18:28
Лучший ответ Сообщение было отмечено zenit_champion как решение

Решение

Не по теме:

sql-код можно было бы в файл.sql положить и не дёргать питон…



Добавлено через 50 секунд
Тем более при повторном запуске insert'ы не отработают из-за ограничения на первичных ключах.

Добавлено через 6 секунд
*ограничений

Добавлено через 1 минуту
И тип поля text - плохой выбор, возьмите что-нибудь адекватное, например, varchar(200);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.02.2023, 18:28
Помогаю со студенческими работами здесь

Автоматическое создание таблиц из наименований таблиц, имен полей, типов полей
Форумчане, доброго времени суток! Есть таблица в которую автоматом выгрузили имена всех таблиц, полей, их тип (и запросов на выборку)...

Power BI и PostgresSQL
Такая проблема: Сделал парсер сайта, с занесением данных в БД, как СУБД выбрал PostgersSQL, после чего арендовал VPS сервер для...

PostgresSql + Qt изображения
Здравствуйте, помогите разобраться, как сохранять изображения в базе, читать их в проекте, и отображать; Пока только поняла чтобы...

Установка PostgresSQL
Добрый день, Помогите пожалуйста решить проблему с установкой PostgresSQL. Запускаю файл, все в порядке до окно где спрашивает...

MySQl Postgressql
Почему при указании not null поля, после insert поле все равно 0? То есть при создании таблицы делаем обычную колонку и notnull, потом...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru