如果列的值为null
,如何为列更新和设置某个值?
例如:
我在表Products
中有10行。我想将所有行的值'0'
设置为名为quantity
的列,如果该行在该特定列上具有值null
。
我试过了:
ALTER TABLE Products ADD DEFAULT '0' FOR quantity
WITH VALUES;
...但它没有将null
值更新为该列的0
。
答案 0 :(得分:1)
添加列时适用WITH VALUES
子句,而不是在更改现有列时适用。这解释了为什么行在更改的列中仍然包含NULL。
由于列仍然可以为空(您还没有添加NOT NULL约束),因此空值完全有效(并且DBMS没有理由将这些NULLS更改为默认值)。您当然可以显式更新所有现有的NULL:
update products set quantity = 0 where quantity is null;
但您可以稍后再次添加NULL数量的记录。因此,您可能希望先更新记录,然后更改列,以便完全禁止NULL:
alter table products alter column quantity integer not null;
答案 1 :(得分:1)
Alter Table
正在影响新行。
对于现有行,请使用以下代码: -
Update Products set quantity = 0 where quantity IS NULL.
答案 2 :(得分:0)
db.execSQL(CREATE_TABLE_QUERY);