MySQL中怎么让一个列的默认值等于另一个列的值

2024-11-06 22:37:37
推荐回答(3个)
回答1:

1、这个问题我们最先想到的是用触发器解决,在新增数据后把b列的值赋值为a列的值;

2、但是很遗憾,MySQL不允许对本表insert后进行这样的操作;

3、所以有一个方法就是再建另外一张一样的临时表来处理,然后用触发器来解决,把记录先写到临时表,然后写正式表时用触发器更新正式表b列的值为临时表a列的值

回答2:

你的代码有以下几个问题:
1. 判断是否是NULL应使用is,而不是=
2. 修改字段值应使用UPDATE语句

故你的代码修改成下面这样,试试看
create trigger tigger1 on UserInfo
for insert
as
declare @i1 as int --这里类型实际应修改为a的类型
select @i1 = UserInfo.a
from UserInfo join inserted on UserInfo.主键 = inserted.主键

if ( @i1 is null)
update UserInfo
set a = UserInfo.b
from UserInfo join inserted on UserInfo.主键 = inserted.主键

回答3:

在触发器中写代码,插入和修改的时候触发,改写列值