Mysql lock
12 отговора
386 прегледа
Mysql lock
как мога да lock-на само 1 запис в таблица( innodb) ?
много ще съм благодарен ако някой ми каже...
много ще съм благодарен ако някой ми каже...
Re: Mysql lock
доколкото знам, InnoDB lock-ва автоматично, в зависимост от заявката, транзакцията и isolation level-а
най-лесно е по оракълски, т.е.
select .... from .... for update (не забравяй commit-а после)
другите случаи си направих труда да ти ги изровя от документацията
[линк]
(т.е. бил си на един search разстояние от тях
)
най-лесно е по оракълски, т.е.
select .... from .... for update (не забравяй commit-а после)
другите случаи си направих труда да ти ги изровя от документацията
[линк]
(т.е. бил си на един search разстояние от тях
Re: Mysql lock
мерси за отговора..:)
това съм го 4ел (не съм 4ак толко мързелив ;))))
целта ми е въпросния запис да е lock -нат непрекъснато когато даден user има конекция към сървъра... (
това съм го 4ел (не съм 4ак толко мързелив ;))))
целта ми е въпросния запис да е lock -нат непрекъснато когато даден user има конекция към сървъра... (
Re: Mysql lock
"целта ми е въпросния запис да е lock -нат непрекъснато когато даден user има конекция към сървъра... ("
Това го няма никъде доколкото ми е известно. Нито в стандартите нито в която и да било реализация.
salle.online.bg/sig
Това го няма никъде доколкото ми е известно. Нито в стандартите нито в която и да било реализация.
salle.online.bg/sig
Re: Mysql lock
:) ми знам 4е го няма..userite в системета си ги записвам в таблица... абе..малко ми е сложно да ти го обесня....
..немало го в нито една реализация..браво..
..немало го в нито една реализация..браво..
Re: Mysql lock
да не се обиждаш ..ама след като си нямаш представа за какво му е нещо на човек защо е необходимо пък да се правиш на толкоз умен
(видях linka ,все пак)..
(видях linka ,все пак)..
Re: не разбирам какво искаш да кажеш.
Имах предвид, че нито една реализация няма да ти позволи да държиш заключен определен ред през цялата сесия и в същото време да изпълняваш транзакции.
Още при първия COMMIT или ROLLBACK (явен или неявен) върпосния ред ще се отключи.
Ако греша поправи ме.
Наситина не знам какво правиш, но пък и ти не си обяснил.
Много е възможно GET_LOCK/RELEASE_LOCK да ти свърши работа.
[url=[линк]]salle.online.bg/sig[/url
Още при първия COMMIT или ROLLBACK (явен или неявен) върпосния ред ще се отключи.
Ако греша поправи ме.
Наситина не знам какво правиш, но пък и ти не си обяснил.
Много е възможно GET_LOCK/RELEASE_LOCK да ти свърши работа.
[url=[линк]]salle.online.bg/sig[/url
Редактирано от salle на
Re: не разбирам какво искаш да кажеш.
аз ве4е измислих как да го направя..( няма да заклювам този ред..)
не 4е нимам желание да ти обесния.. ама не ми се пише токлоз..:)
... ми представи се програма която следи склад,с4етоводство,документи,пари4ни потоци и т.н. 4е изп. MySQL сървър ..и.... предполагам 4е по-нататък ти е ясно
не 4е нимам желание да ти обесния.. ама не ми се пише токлоз..:)
... ми представи се програма която следи склад,с4етоводство,документи,пари4ни потоци и т.н. 4е изп. MySQL сървър ..и.... предполагам 4е по-нататък ти е ясно
Re: не разбирам какво искаш да кажеш.
Погледни все пак
GET_LOCK()
RELEASE_LOCK()
Ако си навътре в програмирането с thread-ове - това общо взето е нтерфейс към mutex
salle.online.bg/sig
GET_LOCK()
RELEASE_LOCK()
Ако си навътре в програмирането с thread-ове - това общо взето е нтерфейс към mutex
salle.online.bg/sig
Re: не разбирам какво искаш да кажеш.
охооо, ако искаш да правиш security, това явно не е правилния път ...
ако ще да е на ниво база, мисли го по друг начин
ако ще да е на MySQL, мисли и по-внимателно (тъй като нямаш част от механизмите, които могат да се реализират със security чрез view-та или triggers)
но такова low-level security съм виждал само в оракъл и то в 9i нагоре, казва се Oracle Label Security и представлява етикет, който можеш да сложиш на всеки ред от таблица и да кажеш кой има право да го access-ва
предполагам изобщо няма да ти е трудно да си скалъпиш едно много добро secutiry ниво, което седи пред access-а към базата (става с 2-3 таблици групи и права за обекти и малко код, който ги ползва)
ако ще да е на ниво база, мисли го по друг начин
ако ще да е на MySQL, мисли и по-внимателно (тъй като нямаш част от механизмите, които могат да се реализират със security чрез view-та или triggers)
но такова low-level security съм виждал само в оракъл и то в 9i нагоре, казва се Oracle Label Security и представлява етикет, който можеш да сложиш на всеки ред от таблица и да кажеш кой има право да го access-ва
предполагам изобщо няма да ти е трудно да си скалъпиш едно много добро secutiry ниво, което седи пред access-а към базата (става с 2-3 таблици групи и права за обекти и малко код, който ги ползва)
Re: не разбирам какво искаш да кажеш.
Абсолютно правилно! С един малък слой може да се напарви много гавкъво и преносимо. Например може да се организират като "събития" всяко едно десйтвие в/у данните и от там както каза колегата :) с няколко таблици става и проверка преди "събитието" дали усер-а който го случва има права да го прави ако има, екшън, ако няма да :) пишеш във лог и изнасяш съобщение, да не прави магарии... предполагам, че тия неща гио знаеш, но аз просто споделям :) от опит.
успех
успех
Re: не разбирам какво искаш да кажеш.
Kum bili : Izvinqvaj no mislq che trqbwa osnovno da pregledash nachina si na postvane po forumite. Toku shto prochetoh celiq thread i ostanah s vpechatlenieto che dori ne si naqsno kakvo iskash - mojeshe pone da otgovorish na salle (koito ochevidno se opitva da ti pomogne) neshto smisleno wmesto da mu podhwurlqsh nedovurheni izrecheniq.