Чтобы проверить значения в других базах данных, используя триггер - PullRequest
1 голос
/ 25 марта 2009

Можно ли с помощью триггера проверить, существует ли конкретное значение в столбце в других базах данных? Эти две базы данных находятся внутри одного и того же экземпляра MYSQL. В частности, я хочу сделать следующее:

  1. Перед добавлением строки в таблицу (Document_Index_table) внутри базы данных A (Document_DB).
  2. Сработал триггер. Этот триггер несет значение столбца (usr_id) внутри строки и передает его в базу данных B (User_Control_DB).
  3. На основании значений User_Control_DB проверит, существует ли usr_id в столбце usr_id таблицы (Usr_Information).
  4. Если существует, то вернуть true в Document_DB, и строку в 1. можно добавить в Document_DB.
  5. Если нет, то выдается ошибка. Ни одна строка не добавляется к Document_DB.

Как это можно сделать, если это вообще можно сделать?

Редактировать: Обе базы данных являются базами данных MySQL

1 Ответ

0 голосов
/ 25 марта 2009

Итак, я новичок в разработке баз данных, но вы могли бы сделать что-то вроде этого:

Создайте триггер вставки «До» в вашей document_index_table. Триггер делает что-то вроде этого:

declare numRows integer;
select count(*) from user_control_db.usr_information where usr_id = NEW.usr_id into num_rows;
if (numRows > 0) then
   call NonExistentProc();
end if;

Я верю, что это сделает то, что вы хотели. Он выдаст ошибку типа «ПРОЦЕДУРА documentdb.NonExistenProc не существует» и пропустит вставку, если в базе данных пользовательского элемента управления отсутствует хотя бы одна строка с соответствующим идентификатором usr.

Опять же, я новичок в этой области БД, так что может быть более элегантный способ, но это сработало для моего единственного контрольного примера.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...