有谁知道是否有可能在MySQL中实现行约束?如何实现mysql行约束
可以说我有一个非常简单的表保持促销代码的网上商店:
CREATE TABLE `promotioncodes` (
`promotionid` int(11) NOT NULL AUTO_INCREMENT,
`promotioncode` varchar(30) DEFAULT NULL,
`partnerid` int(11) DEFAULT NULL,
`value` double DEFAULT NULL,
`nr_of_usage` int(11) NOT NULL DEFAULT '0',
`valid_from` datetime DEFAULT '0000-00-00 00:00:00',
`valid_through` datetime DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`promotionid`),
UNIQUE KEY `promotioncode_unique` (`promotioncode`)
)
有没有什么办法确保,当行被插入或更新:
1 )'valid_from'日期总是'较小'(以日期表示),然后是'valid_through'。 2)如果'valid_from'发生空白/ null'valid_through'也必须为空/空。 3)如果'valid_through'恰好留空/ null'valid_from'也必须为空/空。
我收集了一些关于触发器和存储过程的东西,但我没有这些解决方案的感觉:/?如果他们是解决方案,那么请给我一个具体的例子来说明如何实现这个
存储过程可能是可能的,但我无法承诺。对于其他更强大的数据库,MySQL并不是那么热门。 – GordonM