使用字符串 SQL 插入 SELECT

INSERT SELECT with string SQL

我想将一栏的内容复制到另一栏。复制的内容应该链接到一个字符串。

|  company  |  new_company  |
_____________________________
Google      | The Google Company

此处 "The" 和 "Company" 作为字符串附加到内容中。

我尝试了很多,对我来说最有意义的样子是这样的:

INSERT INTO table_name (copy_into_column)
SELECT CONCAT('The ', copy_from_column, ' Company')
FROM table_name

但是有了这个 sql 我得到了那个错误:

#1292 - Incorrect datetime value: '0000-00-00 00:00:00' for column 'time' at row 1035

当然,我右边有好几个栏目table,但实际上应该忽略还是?

希望有人出出主意。

似乎还有另一个名为 time 的列不接受空值。您可以尝试插入当前时间,例如:

INSERT INTO table_name (copy_into_column, time)
    SELECT CONCAT('The ', copy_from_column, ' Company'), NOW()
    FROM table_name;

你不是在找更新声明吗?

UPDATE table_name
SET copycol = CONCAT('The ', copy_from_column, ' Company')

关于您得到的错误:

您有一个显然需要的时间戳字段。从您共享的代码中,我看到您正在向数据库中插入新行,我猜您没有填充其他列。