假设我有两张桌子EBAY和AMAZON。在EBAY表中,我必须添加一个新列:
价格必须大于AMAZON.price,默认情况下应设置为10,大于0且不超过4位。
我当前的查询:
ALTER TABLE ebay ADD COUMN priece numeric(4,2) DEFAULT 10 check (priece >0);//BUT I need to compare EBAY.price > AMAZON.PRIECE.
答案 0 :(得分:0)
https://www.postgresql.org/docs/current/static/ddl-constraints.html https://www.postgresql.org/docs/current/static/sql-createtable.html
目前,CHECK表达式不能包含子查询,也不能引用 除当前行的列之外的变量。
因此,如果您想将EBAY.price
与AMAZON.PRIECE
进行比较,则需要触发。
DEFAULT 10
会将priece的值设置为10
numeric(4,2)
将值限制为小数点前两位数,后两位数限制,如果你想要四位小数,请使用numeric(6,2)
或numeric(4,0)
或任何你想要的小数位数