ALTER TABLE添加具有不同表值的列

时间:2017-03-15 08:26:39

标签: postgresql

假设我有两张桌子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.

1 个答案:

答案 0 :(得分:0)

  1. 检查其他表格行:
  2. https://www.postgresql.org/docs/current/static/ddl-constraints.html https://www.postgresql.org/docs/current/static/sql-createtable.html

      

    目前,CHECK表达式不能包含子查询,也不能引用   除当前行的列之外的变量。

    因此,如果您想将EBAY.priceAMAZON.PRIECE进行比较,则需要触发。

    1. 默认
    2. 如果未指定值,

      DEFAULT 10会将priece的值设置为10

      1. 4位 numeric(4,2)将值限制为小数点前两位数,后两位数限制,如果你想要四位小数,请使用numeric(6,2)numeric(4,0)或任何你想要的小数位数