【问题标题】:MySQL: ERROR 1292 (22007): Truncated incorrect DOUBLE value: 'col1', computed virtual column insertMySQL:错误 1292 (22007):截断不正确的 DOUBLE 值:\'col1\',计算的虚拟列插入
【发布时间】:2023-02-25 19:21:37
【问题描述】:

我有这张桌子:

create table TableName5 (     col1 varchar(200),     col2 varchar(200),     col3 varchar(200) generated
always as ('col1' + 'col2') stored );

col3 应该是计算列 - col1 中的值加上 col2 中的值。

创建查询工作正常。

但是尝试插入值:

insert into TableName5 (col1, col2) values ('a', 'b');

结果是

ERROR 1292 (22007): Truncated incorrect DOUBLE value: 'col1'

错误。

我究竟做错了什么?

编辑:

我尝试使用不同的创建查询:

create table TableName5 (     col1 varchar(200),     col2 varchar(200),     col3 varchar(200) generated
always as concat(col1, ' ', col2) stored );

但出现语法错误

【问题讨论】:

  • col1 + col2 使两者成为整数,因为无法对文本求和。你想在 col3 'ab' 中出现什么?
  • @nbk 我希望col3 成为ab,是的

标签: mysql sql


【解决方案1】:

在你原来的你有刺 cl1 和 clo2 所以结果是 col1col2

正如我所说,你不能对你需要的 varchar 或 text 求和 CONCAT

create table TableName5 (     col1 varchar(200),     col2 varchar(200),     col3 varchar(200) generated
always as (CONCAT(`col1` , `col2`)) stored );
insert into TableName5 (col1, col2) values ('a', 'b');

SELECT * FROM TableName5
col1 col2 col3
a b ab

fiddle

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2020-10-26
    相关资源
    最近更新 更多