Tôi có một nhiều-nhiều giữa foo
và bar
mô hình hóa như một bảng foo_bar
với foo_id
và bar_id
.Chuyển đổi một mối quan hệ nhiều-nhiều đến một-nhiều trong PostgreSQL
Tôi muốn mô hình hóa mô hình này dưới dạng một đến nhiều (dữ liệu của tôi cho phép).
Tôi đã thêm một cột foo_id
vào bar
nhưng bây giờ tôi muốn di chuyển dữ liệu của mình. Vì vậy, tôi muốn
UPDATE bar SET foo_id = f where id = b;
nơi mỗi cặp f
và b
đang đến từ
SELECT foo_id AS f, bar_id AS b FROM foo_bar;
Có thể làm điều này trong SQL (và đặc biệt là PostgreSQL 9.0)?
Tôi biết cách thực hiện các lựa chọn con trong các CẬP NHẬT khi chỉ có một giá trị, nhưng bị chặn làm cách nào để thực hiện trong trường hợp này.
nên kéo dòng được fb.bar_id = b.id? –
@JamesTauber: Không. Không nên có một 'id' trong mô hình. Sử dụng tên cột không mô tả 'id' là một mẫu chống. Khóa chính nên được đặt tên là 'bar_id'. –
đủ công bằng, chỉ cần ánh xạ nó đến các chi tiết cụ thể trong câu hỏi của tôi –