我正在尝试将一个现有的表格分成两个。我有一个名为
我最接近的方法是这样的:
但是我遇到了这个错误:
sections
的表格,其中包含一个file_url
字段,现在我需要将其移动到media_files
表格的url
字段中。此外,我想要填充attachments
表格,它作为一个has_many :through
(在Rails中),这意味着它会跟踪media_file_id
和section_id
之间的外键关系。我最接近的方法是这样的:
WITH ids AS (
INSERT INTO media_files (url, mimetype)
SELECT file_url, 'image/jpeg'
FROM sections
WHERE file_url IS NOT NULL
RETURNING id AS media_file_id, sections.id AS section_id
)
INSERT INTO attachments (media_file_id, section_id)
SELECT media_file_id, section_id
FROM ids
但是我遇到了这个错误:
PG::UndefinedTable: ERROR: missing FROM-clause entry for table "sections"
LINE 6: RETURNING id AS media_file_id, sections.id AS sectio...
这是有道理的,但我不确定如何获取section_id
。
有没有方法可以让它工作?也许有更好的替代方法?
编辑: 这里是SQL Fiddle链接