日期:2014-05-17  浏览次数:20436 次

求问有关check约束 检查表满足条件的行数的语句
CREATE TABLE FLIGHTS
(
flightNum varchar(100) not null primary key,
price int not null,
numSeats int not null,
numAvail int not null,
FromCity varchar(100),
ArivCity varchar(100)
)
go
CREATE TABLE RESERVATIONS
(
custName varchar(100),
flightNum varchar(100)
)


对以上两个表需要添加一个约束:
表RESERVATIONS中所有flightNum=表Flights中某一flightNum的行数之和应该等于Flights表中这个flightNum对应的numSeats-numAvail

求问这语句应该怎么写?

------解决方案--------------------

--增加外键
alter table RESERVATIONS
add constraint flightNum_FK1 foreign key (flightNum) references FLIGHTS (flightNum)
--在修改字段值
 update RESERVATIONS
set flightNum = FLIGHTS.numSeats-FLIGHTS.numAvail
from FLIGHTS where RESERVATIONS.flightNum  = FLIGHTS.flightNum

------解决方案--------------------
表示没看懂楼主的意思。
------解决方案--------------------
lz 可以在RESERVATIONS插入数据时使用before inert 触发器进行判断是否符合你的算法