Autor | Zpráva | ||
---|---|---|---|
quatzael Profil |
#1 · Zasláno: 22. 8. 2015, 18:42:57
Řekněme, že budu mít ve sloupci nastavený typ ENUM takto:
enum('on', 'off') Tedy jen na dvě možnosti 'on' a 'off' . Když tam náhodou budu vkládat něco jiného, můžu se spolehnout, že mi to tam vždy vloží defaultní hodnotu, kterou mám nastavenou na 'off' ?
Díky za odpovědi. |
||
juriad Profil |
Ne. Viz sqlfiddle.com/#!9/1e4da/4. Zkoušel jsem tam vkládat vše, co mě napadalo, a toto je výsledek.
Jak si vůbec představuješ pustit do databáze něco, nad čím nemáš kontrolu? To je tak těžké zkontrolovat, že vkládáš jen a pouze 'on' nebo 'off'? |
||
quatzael Profil |
#3 · Zasláno: 22. 8. 2015, 20:47:41
juriad:
Chci jednou univerzální funkcí mít možnost vkládat do více tabulek bez ohledu na sloupce, takže jsem si chtěl ušetřit několik řádků (nemám tam jen ENUM pro on/off).. Každopádně díky. |
||
Dusann Profil |
quatzael:
„Tedy jen na dvě možnosti 'on' a 'off'. Když tam náhodou budu vkládat něco jiného, můžu se spolehnout, že mi to tam vždy vloží defaultní hodnotu, kterou mám nastavenou na 'off'?“ Ak nepoužívaš strict sql mode, tak môžeš empty string nahradiť za "off" hodnotu: If you insert an invalid value into an ENUM (that is, a string not present in the list of permitted values), the empty string is inserted instead as a special error value. If strict SQL mode is enabled, attempts to insert invalid ENUM values result in an error. Budeš mať teda ENUM s hodnotami "on" a empty string a pri pokuse tam vložiť niečo iné sa zapíše empty string. EDIT: ak je možné v MySQL to vytvoriť, tak ti vlastne stačí zadefinovať iba ENUM s "on" hodnotou. |
||
Časová prodleva: 9 let
|
0