作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个用户表,其中有许多下载列,对于新行,我如何将其初始化为 0。我只希望当我触发另一个表中的事件时它会发生变化。
最佳答案
您可以使用 create table
语句中的默认语句将其设置为 0
:
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
编辑:
要阻止用户插入任何值,请使用插入触发器。或者,只需在需要时计算该值,而不是将其存储为计数器。
关于mysql - 插入新行时如何在列中设置默认值 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27078764/
我是一名优秀的程序员,十分优秀!