PostgreSQL 10. Есть две таблицы связанные между собой. Таблица recording на самом деле имеет еще другие колонки, а то может показаться что таблицы одинаковые.
create table video (
"id" serial primary key,
"videoId" varchar(25) not null,
"recordingId" serial REFERENCES recording (id),
"default" varchar(100),
"medium" varchar(100),
"high" varchar(100),
unique ("videoId", "recordingId")
);
create table recording (
"id" serial primary key,
"videoId" varchar(15) not null,
"default" varchar(60),
"medium" varchar(60),
"high" varchar(60)
);
В таблице recording записей больше чем в video, т.е. мне нужно в recording обновить не все строки , а только те, которые связанные с соотв. строками с таблицы video. Делаю так:
UPDATE recording
SET recording."videoId" = video."videoId"
SET recording.default = video.default
SET recording.medium = video.medium
SET recording.high = video.high
FROM video
WHERE recording.id = video."recordingId"
Обновление не происходит. Может быть причина в том, что в одной таблице varchar(60) а в другой - varchar(100)?
И еще вопрос по поводу того, как сэкономить на размере бд. Если одно поле varchar(100), а другое - varchar(60), но при этом данные в обоих по 50 символов, какое из полей будет занимать меньше места? Будет ли экономнее выделить varchar(60) или они оба будут занимать столько, сколько положено для 50 символов?