【问题标题】:MySQL Set default field value concat with record idMySQL使用记录ID设置默认字段值
【发布时间】:2020-07-30 18:28:47
【问题描述】:

我有以下结构的 MySQL 表:

-------------
| id | name | 
-------------

其中 ID 是 int auto_increment,名称只是 varchar(255)。

所以我需要使用数据库默认值设置名称(如果在插入请求后为空),例如:

INSERT INTO users;
id = 1
name = "User1"

... 它也应该与 null 一起使用:

INSERT INTO users (name) VALUES (null);
id=8232
name = "User8232"

如果我们为 name 发送空值也会很好:

INSERT INTO users (name) VALUES ('');
id=8233
name = "User8233"

但如果我明确设置应该是的值:

INSERT INTO users VALUES ('TestUser')
id=8232
name = "TestUser"

此外,如果该逻辑不在触发器中,而是在表定义中或插入查询本身中,那就太好了。

因此,为新注册创建唯一用户名的目的。

谢谢!

【问题讨论】:

  • 你想达到什么目的?
  • @Ben 唯一的用户名:如“用户”+ ID(也更新了问题描述)
  • 列列表的默认值是整个集合。因此,您的最后一个 INSERT 无效。

标签: mysql ddl varchar


【解决方案1】:

您可以使用存储过程来实现这一点。 创建一个接受用户名参数的存储过程。在您的 SP 中,检查 UserName 是否为空或为空,编写您的逻辑。 如果您需要准确的 SP 定义,请告诉我

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-18
    • 1970-01-01
    • 2013-03-01
    • 2012-11-20
    • 1970-01-01
    • 2015-11-05
    相关资源
    最近更新 更多