Pojďme se základní deterministické funkce a non-deterministický jeden:
ABS(2)
NOW()
Co o třetím případě něco, co se může změnit, ale nejsme si jisti, např.:
SELECT
ABS(2) -- deterministic
, NOW() -- not
, getTableCount(otherTbl) -- function that does a 'SELECT count(1) FROM table'
FROM
table
V podstatě, když řádek je vložena nebo odstraněna, výběru hodnoty se změní. Takže, to je považován za deterministický? Výsledek by měl být vždy stejný...pokud podkladových dat je změněn, takže je to skoro jako třetí případ. Nebo, je volatilní/non-deterministický jen znamenat, jestli se to někdy změní, nikdy, nikdy, nikdy, za žádných okolností, pak je to volatile. ?