5 / 5 / 1
Регистрация: 11.10.2013
Сообщений: 416
|
||||||||||||||||
Заполнение данными таблиц21.04.2017, 22:08. Показов 14429. Ответов 6
Метки postgresql (Все метки)
Здравствуйте.
Есть несколько таблиц, которые имеют первичные, вторичные ключи и прочие данные. Необходимо написать скрипт (вероятно функцию с входными параметрами), которая добавляла бы данные во все таблицы. То есть на вход ей должны подаваться все поля всех таблиц. Важно учитывать, что не все параметры функции могут быть использованы. То есть: например, у нас есть две таблицы: Водитель и Штрафы. Мы дублируем все поля обеих таблиц в параметры функции. НО, ведь не у каждого водителя может быть штраф, следовательно, для какого-то из водителей мы не должны вбивать данные в таблицу Штрафы. Как это можно реализовать?
0
|
21.04.2017, 22:08 | |
Ответы с готовыми решениями:
6
Быстрое заполнение данными Заполнение таблицы данными
|
1258 / 973 / 383
Регистрация: 02.09.2012
Сообщений: 3,001
|
|
22.04.2017, 00:11 | |
хорошая идея - сделать по одной элементарной функции для каждой таблицы.
при этом уникальные идентификаторы сделать out-параметрами, которые будут возвращаться из функции после вставки. и уже в add_data можно сделать какую-то более сложную логику. когда штраф не нужен, значение его параметра можно присвоить null, проверять этот null и, соответственно, не вызывать элементарную функцию вставки штрафа.
0
|
1258 / 973 / 383
Регистрация: 02.09.2012
Сообщений: 3,001
|
||||||
23.04.2017, 05:51 | ||||||
![]() Решение
например так.
1
|
5 / 5 / 1
Регистрация: 11.10.2013
Сообщений: 416
|
|||||||||||
24.04.2017, 00:17 [ТС] | |||||||||||
grgdvo, разобрал ваш код. Спасибо за него
![]() Идею, кажется, я понял. Надо в итоге вызывать только функцию add_data с входными параметрами (dri, FIO_dri, id_penal, amount)? Как вызвать такую функцию со вставкой? Добавлено через 9 минут Вернее, как правильно вызвать такую функцию со вставкой? Вызвать получается так:
Добавлено через 5 минут Использование конструкции вида:
Добавлено через 36 минут grgdvo, и как можно поступить, если Первичный Ключ является типом VARCHAR(50) (то есть строковым типом)? На что можно его изменять, если он на входе NULL? Добавлено через 6 часов 16 минут grgdvo, остался актуален только вопрос с PERFORM.
0
|
1258 / 973 / 383
Регистрация: 02.09.2012
Сообщений: 3,001
|
||||||
24.04.2017, 02:20 | ||||||
Вызов функции тоже должен быть SQL-выражением, поэтому используйте SELECT для вызова функции.
Либо используйте PERFORM из plpgsql, но тогда через анонимный блок DO
0
|
5 / 5 / 1
Регистрация: 11.10.2013
Сообщений: 416
|
|
24.04.2017, 02:55 [ТС] | |
grgdvo, все понял. Спасибо!
0
|
24.04.2017, 02:55 | ||||||
Помогаю со студенческими работами здесь
7
Заполнение данными бд Клиенты Заполнение БД случайными данными Триггер с данными из двух таблиц
Форма с данными из нескольких таблиц Искать еще темы с ответами Или воспользуйтесь поиском по форуму:
|
|
Новые блоги и статьи
![]() |
||||
Мульти-тенантные БД с PostgreSQL Row Security
Codd 23.04.2025
Современные облачные сервисы и бизнес-приложения всё чаще обслуживают множество клиентов в рамках единой программной инфраструктуры. Эта архитектурная модель, известная как мульти-тенантность, стала. . .
|
Реализация конвейеров машинного обучения с Python и Scikit-learn
AI_Generated 23.04.2025
Мир данных вокруг нас растёт с каждым днём, и умение эффективно обрабатывать информацию стало необходимым навыком. Специалисты по машинному обучению ежедневно сталкиваются с задачами предобработки. . .
|
Контроллеры Kubernetes Ingress: Сравнительный анализ
Mr. Docker 23.04.2025
В Kubernetes управление входящим трафиком представляет собой одну из ключевых задач при построении масштабируемых и отказоустойчивых приложений. Ingress — это API-объект, который служит вратами. . .
|
Оптимизация кода Python с Cython и Numba
py-thonny 23.04.2025
Python прочно обосновался в топе языков программирования благодаря своей простоте и гибкости. Разработчики любят его за читабельность кода и богатую экосистему библиотек. Но у этой медали есть и. . .
|
Микросервис на Python с FastAPI и Docker
ArchitectMsa 23.04.2025
В эпоху облачных вычислений и растущей сложности программных продуктов классическая монолитная архитектура всё чаще уступает место новым подходам. Микросервисная архитектура становится фаворитом. . .
|
Создаем веб-приложение на Vue.js и Laravel
Reangularity 23.04.2025
Выбор правильного технологического стека определяет успех веб-проекта. Laravel и Vue. js формируют отличную комбинацию для создания современных приложений. Laravel — это PHP-фреймворк с элегантным. . .
|
Максимальная производительность C#: Span<T> и Memory<T>
stackOverflow 22.04.2025
Мир высоконагруженных приложений безжалостен к неэффективному коду. Каждая миллисекунда на счету, каждый выделенный байт памяти может стать причиной падения производительности. Разработчики на C#. . .
|
JWT аутентификация в Java
Javaican 21.04.2025
JWT (JSON Web Token) представляет собой открытый стандарт (RFC 7519), который определяет компактный и самодостаточный способ передачи информации между сторонами в виде JSON-объекта. Эта информация. . .
|
Спринты Agile: Планирование, выполнение, ревью и ретроспектива
EggHead 21.04.2025
Спринты — сердцевина Agile-методологии, позволяющая командам создавать работающий продукт итерационно, с постоянной проверкой гипотез и адаптацией к изменениям. В основе концепции спринтов лежит. . .
|
Очередные открытия мега простых чисел, сделанные добровольцами с помощью домашних компьютеров
Programma_Boinc 21.04.2025
Очередные открытия мега простых чисел, сделанные добровольцами с помощью домашних компьютеров.
3 марта 2025 года, в результате обобщенного поиска простых чисел Ферма в PrimeGrid был найден. . .
|