mysql - 插入时根据其他列计算字段值

标签 mysql

我有一个表,其中有一个 ID 列(主键自动增量)和一列名称。

我想在根据格式生成的 ID 列值插入时自动填充名称列的值

<IDColumnValue>_School

我知道有两种方法可以做到这一点

  1. 使用触发器
  2. 先插入行,然后根据插入的行 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/

相关文章:

mysql - 同样的查询。相同的数据集。两台 MySQL 服务器。两个不同的结果。为什么?

php - 如何防止SQL注入(inject)?

php - 如何删除重复的内容?

mysql - 从mysql中的另一个表导入列

javascript - 使用 tinymce 编辑器时,我的数据没有发布到数据库中

mysql - 使用远程 MySQL 编辑本地主机网站

mysql - 添加 mysql 约束或触发器

iphone - SQlite同步方案

c# - BCrypt 根据数据库中的密码验证密码

MySQL SELECT 查询条件不符合预期 - 正确的格式是什么?