SQL 使用 ALTER 查询 TABLE 在查询执行中打印错误 #1064

SQL query with ALTER TABLE print error #1064 in query execution

我在 Aruba MySQL 数据库中构建了一个 SQL 查询,使用 alter table 语句生成一个包含逗号分隔值的新列。每次将新记录提交到数据库 table 时,我都会尝试自动执行连接功能。执行查询后,我总是收到 #1064 错误。

ALTER TABLE 1459630_form_1
    ADD COLUMN 'datimarketing' 
        MEDIUMTEXT GENERATED ALWAYS AS (CONCAT(`segmento_auto_richiesto`,',',`alimentazione`,',',`km_annui_percorsi`,',',`modalit_di_acquisto`,',',`budget_di_spesa`,',',`rata_mensile`,',',`abitudini_di_acquisto`,',',`numero_di_componenti_del_nucleo_familiare`,',',`hobby`,',',`professione`,',',`iscritto_ad_associazioni_di_categoria`,',',`privacy_mkt_all`,',',`giorno_preferito_per_il_ricontatto`,',',`orario_preferito_per_il_ricontatto`)) STORED AFTER `orario_preferito_per_il_ricontatto`
        UPDATE TABLE(1459630_form_1)

有人可以帮助我吗? 谢谢

在 MySQL 中,语法如下:

ALTER TABLE 1459630_form_1
    ADD COLUMN datimarketing MEDIUMTEXT 
    GENERATED ALWAYS AS (CONCAT_WS(',', `segmento_auto_richiesto`, `alimentazione`, `km_annui_percorsi`)) STORED 
    AFTER `orario_preferito_per_il_ricontatto`
;

我缩短了连接列的数量,使代码更具可读性(当然逻辑是一样的)。

理由:

  • 列名不应该用单引号括起来

  • 括号需要平衡

  • UPDATE TABLE()此处不适用

旁注:CONCAT_WS() 可以方便地缩短 CONCAT() 表达式。