是否可以使用触发器检查列中的特定值是否存在于其他数据库中?这两个数据库位于同一个MYSQL实例中。具体来说,我想做的是:
将行添加到数据库A( Document_DB)中的表( Document_Index_table)之前的
usr_id)之一,并将其传递给数据库B(在值上为usr_id,User_Control_DB将检查usr_id是否存在于表的列usr_id (Usr_Information)中。如果存在
Document_DB,并允许1中的行添加到Document_DB中,然后发出错误。没有向Document_DB.添加任何行
如果真的可以做到的话,如何才能做到呢?
编辑:这两个数据库都是MySQL数据库
发布于 2009-03-25 14:40:57
因此,我是数据库开发方面的新手,但您可以这样做:
在您的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;我相信这会实现你想要的。如果在用户控件db中至少没有一行具有匹配的usr的行,则会产生类似于“过程documentdb.NonExistenProc不存在”的错误,并跳过插入。
同样,我在DB方面也是新手,所以可能有一种更优雅的方法,但这适用于我的单个测试用例。
希望这能有所帮助。
https://stackoverflow.com/questions/681573
复制相似问题