我正在将一列添加为不能为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_id
获取SELECT retailer_id from retailer
,如果等于12,则将其设置为0,否则设置为select查询返回的retailer_id
使用上述查询时,出现错误消息
在这种情况下不允许子查询。仅允许标量表达式。
答案 0 :(得分:1)
我建议改为使用计算列...。因此,您也不必在应用程序逻辑和表定义中都包含此case语句...不要在两个位置都需要它...并且不必担心何时更改零售商编号... calc列会解决这个问题
答案 1 :(得分:0)
我需要类似的功能。计算列对我来说不是一个选项,因为我的值稍后应该由用户更改,所以我在插入时使用触发器。