这与通常的“不能在FROM子句中指定更新的目标表”问题有点不同。我知道我需要创建一个临时表作为查询的一部分来解决这个问题,但我正在按如下所示执行此操作,仍然会得到那个错误。

LOAD DATA LOCAL INFILE 'filename.csv'
INTO TABLE campaigner.areas
CHARACTER SET latin1
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(abbr, fips_code, name)
SET area_type_id    = @STATE_TYPE_ID,
 description     = NULL,
 gnis_feature_id = NULL,
 parent_id       = (SELECT c.country_id FROM (SELECT country_id,country_abbr FROM campaigner.countries_v) AS c WHERE c.country_abbr = 'US'),
 latitude        = NULL,
 longitude       = NULL;

这里是countries_v的定义,正如您所见,它确实使用了areas表。
CREATE OR REPLACE VIEW campaigner.countries_v (country_id, country_abbr, country_name, fips_code) AS
            SELECT c.country_id, ca.abbr, ca.name, ca.fips_code
              FROM campaigner.countries c
         LEFT JOIN campaigner.areas     ca  ON c.country_id  = ca.area_id;

我错过了什么?

最佳答案

您正在将数据插入campaimer.areas表中,但您也可以在视图中使用该表,这就是问题所在。

09-09 22:36
查看更多