誰かが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