Jam*_*uss 3 mysql sql temporary mysql-error-1064 sql-insert
这看起来非常简单,但我坚持使用一个简单的插入语句。见下文:
begin work;
CREATE TEMPORARY TABLE IF NOT EXISTS insert_table AS
(
select
r.resource_id
,fr.file_repos_id
,mv.VALUE
from
resources r
join versions v on v.RESOURCE_ID = r.resource_id
join metadata_values mv on mv.resource_id = r.resource_id
join file_repository fr on fr.file_repos_id = v.foreign_id
where
v.version_status = 'C'
and r.RESOURCE_TYPE = 4
and fr.file_title in ('suburbs')
);
insert
into
metadata_values (elem_id,value,resource_type,resource_id,foreign_id,mtvr_id,mett_id)
values
(62,'test',4,insert_table.resource_id,insert_table.file_repos_id,80,4);
rollback work;
Run Code Online (Sandbox Code Playgroud)
在临时表行中fr.file_title in ('suburbs'),实际列表是从其他地方动态拉取的(这是出于演示目的)。我收到以下错误消息:
错误代码:1054。“字段列表”中的未知列“insert_table.resource_id”
现在,我可以在临时表上运行一个选择,它返回正常,只是在更新语句中失败。我正在从 MySQL 工作台运行它。完全不知道这里发生了什么。
你想要insert . . . select:
insert into metadata_values(elem_id,value, resource_type, resource_id, foreign_id,
mtvr_id, mett_id
)
select 62, 'test', 4, insert_table.resource_id, insert_table.file_repos_id, 80, 4
from insert_table;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18165 次 |
| 最近记录: |