1

我正在添加一个列作为不能为 NULL 的外键,因此需要有一个 DEFAULT 值。

ALTER TABLE location
ADD [retailer_brand_id] INT NOT NULL DEFAULT (SELECT retailer_id from retailer),
FOREIGN KEY(retailer_brand_id) REFERENCES retailer_brand(retailer_brand_id);

我想要实现的是,获取retailer_idfrom SELECT retailer_id from retailer ,如果它等于 12 则将其设置为 0,否则设置为retailer_idselect 查询返回的值。

当我使用上述查询时,我收到一条错误消息

在这种情况下不允许子查询。只允许标量表达式。

4

2 回答 2

1

我建议使用计算列......所以您不必在应用程序逻辑和表定义中也有这个案例语句......不希望它出现在 2 个位置......并且没有担心何时更改retailerid ... calc 列会解决这个问题

于 2018-08-01T23:41:33.660 回答
0

我需要类似的功能。计算列对我来说不是一个选项,因为我的值应该稍后由用户更改,所以我在插入时使用了触发器。

例如在此处描述:Trigger to update table column after insert?

于 2021-02-28T17:32:37.040 回答