Portál AbcLinuxu, 4. listopadu 2025 12:36
INSERT user (domain_id, username, password) SELECT 1, 'kdosi', 'bla bla' FROM user WHERE domain_id IN (1, 2) AND username = 'kdosi' HAVING COUNT(*) < 1;
SELECT user_id FROM user WHERE username = 'kdosi' AND domain_id = 1 AND password = 'bla bla';
Jenže username je možno editovat - existuje podobná finta i na update? Nějaké jiné řešení?
Děkuji za každou radu či odkaz.
            SELECT FOR UPDATE a jiná transakce při snaze změnit stejné řádky musí počkat
            username pro domény 1 a 2 a NULL pro ostatní. Může to být funkční index, může to být index nad počítaným sloupcem - záleží, co umí vaše databáze.
            Zatím mi připadá nejlogičtější zavést pojem jakési skupiny domén a místo domain_id zahrnout do klíče id té skupiny - řekl bych, že to nejlíp vystihuje podstatu řešeného problému.Dost možná to vystihuje i princip toho problému.
        Tiskni
            
                Sdílej:
                
                
                
                
                
                
            
    
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.