Не удается обновить столбец в таблице SQL
Я создал вид
CREATE VIEW `distance` AS
SELECT
`rv`.`id` AS `id`,
`rv`.`TIMESTAMP` AS `TIMESTAMP`,
`rv`.`name` AS `name`,
`rr`.`distance` AS `distance`,
`false` AS `new_name`
FROM
(`recognition_view` `rv`
JOIN `raw_recognition` `rr` ON ((`rv`.`rr_id` = `rr`.`id`)))
И мне нужно обновить new_name
столбец, но я получаю ответ Ошибка столбца "новое_имя" не обновляется. Есть ли способ сделать это?
2 ответа
Более 1 таблицы в FROM
пункт. Это представление не может быть обновлено. Читайте об обновляемых видах. Вы можете создать вместо триггера для достижения своей цели.
new_name
не является частью вашей таблицы (ы). Он построен на ваш взгляд и всегда настроен на false
, Задайте себе вопрос: каким будет результат обновления этой колонки? Где это будет сохраняться?
Если вы хотите иметь возможность обновить это значение, вам следует рассмотреть возможность добавления его в одну из других ваших таблиц или создать новую таблицу и присоединить ее в существующем представлении.
Вы могли бы хранить new_name
информация в вашем recognition_view
или же raw_recognition
Таблица. Для простоты я объясню, как это сделать:
CREATE TABLE raw_recognition (
...
new_name NUMBER(1)
)
а затем в вашем CREATE VIEW
изменить
`false` AS `new_name`
в
`rr.new_name` AS `new_name`