我想在mysql中配置一个表,它允许我强制执行字段输入的顺序。
例如,假设一个包含以下字段的表
阶段1时间戳,阶段1已授权,
阶段2时间戳,阶段2授权,
阶段3时间戳阶段3已授权
其中时间戳是在添加authorizedby信息时自动填充的日期时间。(外国的钥匙或密码或别的什么。这个细节无关紧要。)
我的想法是这样的:
在定义authorizedby时,如果前一阶段的authorizedby和timestamp已填充,则将关联的datetime设置为now。否则,将当前值留空。
如果时间戳或authorizedby值被忽略,请删除对等方和直接上级。
如果mysql会链接触发器,这应该可以正常工作。这样行吗?其他想法?
最佳答案
如果您使用innodb,则构建外键约束来为您检查类似的内容。把它分成3个表,从第2阶段添加到第1阶段,从第3阶段添加到第2阶段,并使用ON DELETE SET NULL
来实现所需的行为。
Foreign Key Doc