Triggers 触发器检查一个表中的重复值
我有一个足球系统数据库,其中有一个表Triggers 触发器检查一个表中的重复值,triggers,Triggers,我有一个足球系统数据库,其中有一个表match: 匹配ID int主键 Home\u ID int(表俱乐部的外键) 访客ID int(表俱乐部的外键) 我已经写了一个触发器来检查,我成功地创建了,但没有更新 CREATE TABLE Clubs ( Club_ID int, Name varchar2(100), Stadium varchar2(100), League_ID int, primary key(Club_ID), forei
match
:
主键匹配ID int
(表Home\u ID int
)俱乐部的外键
(表访客ID int
)俱乐部的外键
CREATE TABLE Clubs
(
Club_ID int,
Name varchar2(100),
Stadium varchar2(100),
League_ID int,
primary key(Club_ID),
foreign key(League_ID) references Leagues(League_ID)
)
CREATE TABLE Matches
(
Match_ID int,
Home_ID int,
Visitor_ID int,
Official_ID int,
DateMatch date,
primary key(Match_ID),
foreign key(Home_ID) references Clubs(Club_ID),
foreign key(Visitor_ID) references Clubs(Club_ID),
foreign key(Official_ID) references Officials(Official_ID)
)
CREATE OR REPLACE TRIGGER Check_Duplicate
before insert or update on Matches
FOR each ROW
declare v_dup number;
begin
select count(Match_ID) INTO v_dup
from Matches
where :NEW.Home_ID =:NEW.Visitor_ID;
if v_dup > 0 then
Raise_Application_Error (-20100, 'This team already exists. The insert is cancelled.');
end if;
end;
触发器是高度特定于供应商的-因此请添加一个标记来指定您是否正在使用mysql
、postgresql
、sql服务器
、oracle
或db2
-或其他完全特定于供应商的触发器。因此,请添加一个标记来指定您是否正在使用mysql
,postgresql
、sqlserver
、oracle
或db2
——或者完全其他的东西。