主键、外键只能对部分的字段进行验证,并不能对表中所有的字段进行验证。
用存储过程也是可以的,只是你写代码时麻烦。比如说,你在应用程序中有多个地方要对表中的数据进行操作,那你在每次对表中的数据进行操作后都要调用存储过程来判断,代码的重复量很大。而触发器则不同。