这与通常的“不能在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表中,但您也可以在视图中使用该表,这就是问题所在。