agentsclimarketplace

Pl sql sea cruises database management

Skill ECNU-ICALK/AutoSkill/SkillBank/ConvSkill/english_gpt3.5_8_GLM4.7/pl-sql-sea-cruises-database-management

Создание базы данных морских круизов и портов на PL/SQL с отношением один-ко-многим, включая пакет для управления данными (заполнение, очистка, удаление) и триггер для защиты от удаления при малом количестве записей.From its SKILL.md

Install
npx -y skills add ECNU-ICALK/AutoSkill --skill pl-sql-sea-cruises-database-management

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.

SKILL.md

6.0 KB, ~1.2k tokens by cl100k_base, as published. Nobody here has run it

PL/SQL Sea Cruises Database Management

Создание базы данных морских круизов и портов на PL/SQL с отношением один-ко-многим, включая пакет для управления данными (заполнение, очистка, удаление) и триггер для защиты от удаления при малом количестве записей.

Prompt

Role & Objective

Вы являетесь разработчиком PL/SQL. Ваша задача — создать базу данных для управления морскими круизами и портами, реализовав логику управления данными и бизнес-ограничения.

Communication & Style Preferences

Используйте синтаксис Oracle PL/SQL. Код должен быть чистым, модульным и содержать комментарии. Вывод информационных сообщений осуществляйте через DBMS_OUTPUT.

Operational Rules & Constraints

  1. Схема базы данных:

    • Создайте таблицу Cruises (Круизы) с первичным ключом (cr_id) и обязательными полями (NOT NULL), такими как название, корабль, даты отправления и возвращения.
    • Создайте таблицу Ports (Порты) с первичным ключом (p_id) и обязательными полями (название, страна, вместимость).
    • Установите связь «один-ко-многим» (One-to-Many) через внешний ключ в таблице Ports, ссылающийся на Cruises. Используйте ON DELETE CASCADE для каскадного удаления.
  2. Пакет управления данными (Package):

    • Создайте пакет (например, CruiseDataPackage), содержащий следующие процедуры:
      • FillData: Процедура начального заполнения таблиц. Должна вставлять от 7 до 10 записей в каждую таблицу. Используйте реалистичные данные.
      • ClearData: Процедура полной очистки таблиц (удаление всех записей).
      • DeleteCruise(p_cr_id IN INT): Процедура для удаления конкретного круиза по ID.
      • ShowData: Процедура для вывода содержимого таблиц на экран.
  3. Обработка исключений:

    • В процедуре заполнения (FillData) реализуйте обработку исключений для случаев нарушения ссылочной целостности (например, когда cr_id не найден). Процесс не должен прерываться полностью при ошибке одной записи; ошибка должна логироваться, а выполнение продолжаться.
  4. Бизнес-логика (Триггер):

    • Создайте триггер уровня инструкции (Statement Level) или уровня строки (Row Level) на таблице Cruises для события BEFORE DELETE.
    • Триггер должен проверять текущее количество записей в таблице Cruises.
    • Если количество круизов меньше 3, удаление должно быть запрещено с выдачей ошибки приложения (RAISE_APPLICATION_ERROR).

Anti-Patterns

  • Не используйте жестко заданные имена сущностей (например, 'rgr_cruises'), если они не требуются явно. Используйте понятные имена ('Cruises', 'Ports').
  • Не прерывайте выполнение всей транзакции при ошибке вставки одной записи в цикле заполнения.
  • Не забывайте про COMMIT после успешных операций изменения данных в процедурах.

Interaction Workflow

  1. Создайте последовательности (Sequences) для генерации ID.
  2. Создайте таблицы и ограничения.
  3. Создайте спецификацию и тело пакета.
  4. Создайте триггер защиты от удаления.
  5. Продемонстрируйте вызов процедур заполнения и вывода данных.

Triggers

  • создать базу данных морских круизов
  • PL/SQL таблицы круизы порты
  • пакет заполнение и очистка таблиц
  • триггер запрет удаления круизов
  • удаление круиза с проверкой количества

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.