为SQL生成触发器/案例
我有下表:为SQL生成触发器/案例,sql,ddl,Sql,Ddl,我有下表: create table Sale( bankname char(8) null, controleoptiename char(10) not null, creditcardnummer numeric(19) null, username char(10) not null, accountnummer numeric(7) n
create table Sale(
bankname char(8) null,
controleoptiename char(10) not null,
creditcardnummer numeric(19) null,
username char(10) not null,
accountnummer numeric(7) null,
constraint pk_username primary key(username)
)
我正在尝试使用以下规则创建案例/触发器:
如果在controleoptiename中插入单词“Creditcard”,则creditnummer必须包含数字,否则将为空
我如何才能做到这一点?您通常会编写一个检查约束来实现这一点。你需要执行规则
controleoptiename = 'Creditcard and isNumber(creditnummer) or
controleoptiename != 'Creditcard and creditnummer is null
这是伪代码,真正的语法取决于您的RDBMS
支票合同强制执行此规则一次,一劳永逸。您只要求新添加的信用卡值必须符合规则(允许数据库中已有的行发生冲突)。通常,检查约束是你真正想要的。 < P>你可能希望考虑一个更强大、更简单的解决方案:为信用卡号创建一个表,并为该表中的所有行只执行数字的规则。 什么是RDBMS?你有没有试过什么,可能是触发器,然后发代码。