【发布时间】:2012-01-15 03:35:33
【问题描述】:
我有两张桌子:
CREATE TABLE Event_details( event_no INTEGER AUTOINCREMENT NOT NULL,
no_players INTEGER NOT NULL,
game_type VARCHAR(20) NOT NULL,
payout_positions INTEGER NOT NULL,
PRIMARY KEY(event_no)
CONSTRAINT check_game_type CHECK(game_type IN ('NLH','NLO','PLO','PLH','STUD','HORSE')
CONSTRAINT check_no_players CHECK (no_players > 1)
CONSTRAINT check_payouts CHECK (payout_positions > 0 AND payout_positions < no_players));
CREATE TABLE Venue( venue_no INTEGER AUTOINCREMENT NOT NULL,
name VARCHAR(20) NOT NULL,
location VARCHAR(20) NOT NULL,
capacity INTEGER NOT NULL,
PRIMARY KEY (venue_no)
CONSTRAINT check_capacity CHECK (capacity > 0));
以及它们之间的外键:
ALTER TABLE Event_details
ADD FOREIGN KEY (venue_no)
REFERENCES Venue(venue_no)
ON DELETE SET NULL;
我想设置一个 CONSTRAINT(或 TRIGGER???),它不允许(或标记) Event_details(no_players)
这可能吗?
【问题讨论】:
-
是的 - 感觉就像是内置在插入或更新触发器中的业务规则。只需查询适当的值并引发异常
-
您使用的是什么版本或 Oracle?
标签: sql oracle triggers constraints