Portál AbcLinuxu, 12. května 2025 15:46
INSERT
i UPDATE
, tak DELETE
na úrovni VIEW může zakázat jen select z více tabulek.
Tedy, pokud si zrobím tabulku:CREATE TABLE `tnodelete` ( `id` int(11) NOT NULL, PRIMARY KEY (`id`) );a vložím do ní:
INSERT INTO `tnodelete` (`id`) VALUES (1);To mi to jistě aplikaci nezatíží :) ...
id
může být i typu byteCREATE OR REPLACE VIEW myview AS SELECT tx.* FROM tx,tnodelete WHERE tnodelete.id = 1;tak mám to samé co:
CREATE OR REPLACE VIEW myview AS SELECT * FROM tx;jen s tím, že naprosto nepatrně zvednu režii dotazu, ale přes VIEW již nebude možné mazat (použít SQL dotaz
DELETE FROM myview ...
)
PS: Dost často se v datábázi vyskytuje nějaká pomocná tabulka jen s čísly 1-N pro různé SELECT-JOIN
-y úplných datový řad z neúplných datových řad :), takže lze použít takovouto tabulku a netřeba vytvářet novou.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.