我有一个表,其中有一个 ID
列(主键自动增量)和一列名称。
我想在根据格式生成的 ID 列值插入时自动填充名称列的值
<IDColumnValue>_School
我知道有两种方法可以做到这一点
- 使用触发器
- 先插入行,然后根据插入的行 ID 列值更新其列值
但实际上我想让这个字段不可为空,但要使用第二个选项,我必须将其设置为可为空。
在插入行时有没有直接的方法可以做到这一点,以便我可以使字段不可为空?
最佳答案
正如我在评论中所说,您可以为 name
列使用临时值。您可以使用如下请求:
INSERT INTO `table` VALUES('', 'name') /*let's assume name is the real name you want to insert*/
我不确定如何使用触发器,但你可能想写这样的东西:
delimiter #
CREATE TRIGGER update_name_after_insert INSERT ON `table`
for each row
begin
update `table` set name = CONCAT_WS("_", id, name)
end#
关于mysql - 插入时根据其他列计算字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17828162/