Как создать хранимую процедуру для удаления элемента из таблицы в Oracle SQL Developer? - PullRequest
0 голосов
/ 03 июня 2018

Я очень новичок в sql и пытаюсь удалить строку данных о персонале из таблицы BANK_PERSON вместе с ее ограничениями FK.Я использую JDBC, чтобы объявить вызываемый оператор, который принимает имя пользователя, затем вызывает хранимую процедуру в sql и удаляет человека из базы данных. Я знаю основной процесс создания хранимой процедуры, но я не уверен, каксделай это в моем случае.Вот моя таблица BANK_PERSON и таблица MY BANK_ACCOUNT с ограничением FK.

   CREATE TABLE BANK_PERSON (
   ID_NUMBER INTEGER PRIMARY KEY,
   FIRSTNAME VARCHAR2(30),
   LASTNAME VARCHAR2(30),
   USERNAME VARCHAR2(30),
   PASS VARCHAR2(30),
   RANK INTEGER
   );


   CREATE TABLE BANK_ACCOUNT (
   ACCOUNT_NUMBER INTEGER PRIMARY KEY,
   ACCOUNT_BALANCE NUMBER(10,2),
   FOREIGN KEY(ACCOUNT_NUMBER) REFERENCES BANK_PERSON(ID_NUMBER));

1 Ответ

0 голосов
/ 03 июня 2018

Прежде всего, я предлагаю использовать опцию ON DELETE CASCADE для вашего FK, которая позволяет автоматически удалять все дочерние записи.Другими словами, используйте следующий скрипт для создания таблицы BANK_ACCOUNT:

CREATE TABLE BANK_ACCOUNT (
   ACCOUNT_NUMBER INTEGER PRIMARY KEY,
   ACCOUNT_BALANCE NUMBER(10,2),
   FOREIGN KEY(ACCOUNT_NUMBER) REFERENCES A1(ID_NUMBER) ON DELETE CASCADE);

Затем используйте следующий скрипт для создания процедуры:

CREATE OR REPLACE
PROCEDURE DELETE_PERSON
(USERNAME IN VARCHAR2) AS
BEGIN
  delete from BANK_PERSON where BANK_PERSON.USERNAME like DELETE_PERSON.USERNAME;
END DELETE_PERSON;

И, наконец, вызов вновь созданной процедуры:

EXECUTE DELETE_PERSON('Marcus');

Надеюсь, это то, что вы хотели бы получить.

...