Невозможно создать обновляемое представление MySql
Я пытаюсь создать обновляемое представление в MySql, но результат не обновляется. Attrepgen - это таблица, в которой первое поле (aidx = numauto) - это PK.
Есть идеи, почему attrepusr не обновляется?
CREATE
ALGORITHM = UNDEFINED
DEFINER = `root`@`%`
SQL SECURITY DEFINER
VIEW `attrepusr` AS
select
`attrepgen`.`Aidx` AS `Aidx`,
`attrepgen`.`IsOffset` AS `IsOffset`,
`attrepgen`.`Dt` AS `Dt`,
`attrepgen`.`Owner` AS `Owner`,
`attrepgen`.`P1` AS `P1`,
`attrepgen`.`P2` AS `P2`,
`attrepgen`.`P3` AS `P3`,
`attrepgen`.`P4` AS `P4`,
`attrepgen`.`P5` AS `P5`,
`attrepgen`.`P6` AS `P6`,
`attrepgen`.`Target` AS `Target`,
`attrepgen`.`Attend` AS `Attend`,
`attrepgen`.`Delta` AS `Delta`,
`attrepgen`.`Remark` AS `Remark`,
`attrepgen`.`Cat` AS `Cat`
from
`attrepgen`
where
(`attrepgen`.`Owner` = current_user())
для информации, таблица attrepgen:
CREATE TABLE `attrepgen` (
`Aidx` int(11) NOT NULL AUTO_INCREMENT,
`IsOffset` tinyint(1) NOT NULL,
`Dt` date NOT NULL,
`Owner` varchar(16) NOT NULL,
`P1` time DEFAULT NULL,
`P2` time DEFAULT NULL,
`P3` time DEFAULT NULL,
`P4` time DEFAULT NULL,
`P5` time DEFAULT NULL,
`P6` time DEFAULT NULL,
`Target` decimal(7,3) NOT NULL,
`Attend` decimal(7,3) NOT NULL,
`Delta` decimal(7,3) NOT NULL,
`Remark` varchar(32) DEFAULT NULL,
`Cat` varchar(1) DEFAULT NULL,
PRIMARY KEY (`Aidx`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;
Я немного озадачен.
1 ответ
Хорошо, понял. Должен сказать, что моя база на самом деле имеет интерфейс в Access. При попытке изменить поле в рабочей среде этот идиот не принимает (продолжает говорить "только для чтения"). Но когда я снова связал свой просмотр в моем внешнем интерфейсе, на этот раз я мог изменить строку оттуда.
Возможно, что верстак просто не позволяет изменять в представлениях, но хочет, чтобы вы вносили изменения непосредственно в исходную таблицу.
Лучше это знать.
Спасибо всем вам, приятно знать, что мы не одни (в темноте):p