Ne, ani jeden řádek ale pohled, který obsahuje jeden řádek, který naopak aktualizuje skutečnou skutečnou tabulku.
To lze provést pomocí specifického zobrazení tabulky na studenta (ano, bude to chaotická struktura DB). Udělte přístup k zobrazení tomuto uživateli pouze povolte pouze výběr/aktualizace a primární klíč nebude možné aktualizovat. Hlavní tabulka se aktualizuje sama při aktualizaci pohledu.
CREATE SCHEMA `example` ;
CREATE TABLE `example`.`student` (
`id` INT NOT NULL,
`name` VARCHAR(45) NULL,
`email` VARCHAR(45) NULL,
PRIMARY KEY (`id`));
INSERT INTO `example`.`student` (`id`, `name`, `email`) VALUES ('1', 'bob', '[email protected]');
USE `example`;
CREATE
OR REPLACE SQL SECURITY DEFINER
VIEW `student_1` AS
SELECT
`student`.`id` AS `id`,
`student`.`name` AS `name`,
`student`.`email` AS `email`
FROM
`student`
WHERE
(`student`.`id` = '1');
CREATE USER 'student_1_user'@'localhost' IDENTIFIED BY 'user_password';
GRANT SELECT,UPDATE ON example.student_1 TO [email protected] IDENTIFIED BY 'user_password';
UPDATE example.student_1 SET email='[email protected]'; // note no primary key needed or allowed