如何在插入新行时在列中设置默认值0

时间:2014-11-22 14:59:30

标签: mysql sql database

我有一个具有多个下载列的用户表,如何将它初始化为非常新行的0。当我在另一个表中触发事件时,我只希望它能够改变。

1 个答案:

答案 0 :(得分:1)

您可以使用0语句中的默认语句将其设置为create table

create table . . .
    numdownloads int default 0

您也可以在创建表格后使用alter table语句执行此操作。

但是,你真的不需要这样做。在您的触发器中,您可以执行以下操作:

update user
    set numdownloads = coalesce(numdownloads, 0) + 1

增加值。

提取数据时,您可以使用coalesce()NULL变为0

select . . . , coalesce(numdownloads, 0) as numdownloads
from user

编辑:

要阻止用户插入任何值,请使用插入触发器。或者,只需在需要时计算该值,而不是将其存储为计数器。