我想知道如何进行以下操作。我有一张桌子,例如
const supplierDetails = props => {
const [suppliers, setSupplierList] = useState([]);
useEffect(() => {
getSupplierData().then(response => {
setSupplierList(response);
});
}, []);
return (
<div>
{suppliers && <SupplierDetails suppliers={suppliers} />}
</div>
);
};
export default supplierDetails;
现在,我想在创建新行时在电话上强制执行NOT NULL,但是我希望以后能够修改该行并删除电话号码。在我的完整示例中,这实际上是一个外键引用,出于法律原因,将来可能必须删除该行外键引用。但是最初输入时,我需要强制它在那里。
答案 0 :(得分:3)
您只能使用触发器来执行此操作(如您所述)。
相反,我建议该列为NOT NULL
,并建议您使用NULL
以外的“不可用”值。如果要存储字符串,则空字符串可能就足够了。或类似'REMOVED FOR PRIVACY COMPLIANCE'
之类的东西。
对于外键引用,只需在引用表中具有一个表示“不可用”的值即可。我经常给这些值一个-1
的键。这还有一个优点,即内部联接可以工作而不会删除行。
在我使用的数据库中,引用表通常具有这样的值,特别是内部联接的工作。我们发现这可以减少分析师和使用数据库的其他人的错误。