0

经过与我的好友 G 的几次搜索,我找到了很多解决方案,但没有一个符合我的情况。快速解释:我目前正在尝试创建一个“测试表”,每天将接收 400 万行。这大约是 48 行/秒。

为了模拟这种情况,我想为我的“LotNumber”列创建一个默认编号,该编号将基于小时和分钟创建。示例:在上午 9 点和 45 分钟创建的所有行都将具有以下“LotNumber”:W11409:451

又名W114+HH:MM+1

所以,我的默认列值为:

concat(cast('W114' as char charset utf8mb4) + left(cast(curtime() as char charset utf8mb4),5) + cast('1' as char charset utf8mb4))

地狱是的,那太野蛮了。我的“LotNumber”列是VARCHAR

当我创建单行时,HeidiSQL 发送错误消息 1292。

我是 SQL 新手,我不知道我的错误在哪里。

4

1 回答 1

0

您的代码有效,只需将数据元素,分开+

select concat(
  cast('W114' as char charset utf8mb4),
  left(cast(curtime() as char charset utf8mb4),5),
  cast('1' as char charset utf8mb4)
  )

您可以在这个db<>fiddle上进行测试

于 2022-01-26T09:09:19.260 回答