0

所以,我必须迁移一些数据,查询是:

SELECT * FROM ldf.vin_EntePublicoLDF WHERE ejr_id = 2019;

我必须获取这些数据,但我尝试设置“2020”:

SET vin_EntePublicoLDF.ejr_id = 2020
INSERT INTO ldf.vin_EntePublicoLDF
SELECT * FROM ldf.vin_EntePublicoLDF WHERE vin_EntePublicoLDF.ejr_id = 2019;`

但我收到一个错误:

[Err] 1193 - 未知系统变量“ejr_id”

有什么建议吗?

4

2 回答 2

0

如果您尝试更新数据,请使用update

update ldf.vin_EntePublicoLDF 
    set ejr_id = 2020
    where ejr_id = 2019;

如果要插入新行:

INSERT INTO ldf.vin_EntePublicoLDF ( . . ., ejr_id )  -- list columns here
    SELECT . . ., 2020
    FROM ldf.vin_EntePublicoLDF
    WHERE ejr_id = 2019;
于 2020-02-24T16:40:47.253 回答
0

如果我没看错,您想在表中创建一组重复的行,并更改新创建行的日期。

为此,您可以SELECT选择您感兴趣的行,但硬编码您需要更改的值。

INSERT INTO ldf.vin_EntePublicoLDF
(
  <List of all columns, with ejr_id listed last>
)
SELECT 
  <List of all columns EXCEPT ejr_id>,
  2020 AS ejr_id --<--- Hard-code your year column here.
FROM ldf.vin_EntePublicoLDF 
WHERE ejr_id = 2019;

我移到ejr_id两个列列表的末尾以便于查找。但是,您可以按照它出现的任何顺序保留它,并确保在语句的SELECT子句中替换您的硬编码值INSERT

于 2020-02-24T16:51:41.000 回答