У меня есть две таблицы базы данных следующим образом:
content_definition
(
content_definition_id bigint ,
content_title character varying(100) NOT NULL,
content_desc character varying(500),
content_kwd character varying(300),
content_view_url character varying(100),
content_edit_url character varying(300),
content_media_url character varying(300),
content_type character varying(50),
site_id integer
)
bl_address
(
address_id bigserial NOT NULL,
entity character varying(30),
entity_id integer,
address1 character varying(150),
address2 character varying(50),
city character varying(50),
state character varying(50),
zip character varying(15),
country character varying(50),
)
Я пытаюсь создать оператор SQL для обновления столбца content_view_url
в первой таблице, добавив в него данные с state
во второй таблице. content_id
в первой таблице должно быть равно entity_id
во второй таблице. Кроме того, мне нужно включить -
между двумя добавляемыми строками, а также заменить все пробелы в столбце состояния на -
и преобразовать его в нижний регистр, поскольку данные являются URL-адресами.
Я пытался создать пример запроса с помощью функции concat
, но он не работает для меня:
update content_definition
set content_view_url = CONCAT(select content_view_url
from content_definition, '-test')
where content_definition_id = 770764;
Я получаю сообщение об ошибке:
ОШИБКА: синтаксическая ошибка в или рядом с "select"
Состояние SQL: 42601
Символ: 64
Есть ли способ достичь этого?