|
|
|
Отнять из одного поля и прибавить к другому. Одним запросом.
|
|||
|---|---|---|---|
|
#18+
Всем привет. Нужен запрос для перевода суммы со счета на счет. Есть конечно простой метод: Код: sql 1. 2. 3. 4. Но тут целых 3 запроса. Пока они выполняются, balance может измениться, это не безопасно. Я использую очень урезанный коннектор, который выполняет каждый запрос отдельно. accid - int, уникальный, не key Пожалуйста помогите составить запрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2014, 21:05:10 |
|
||
|
Отнять из одного поля и прибавить к другому. Одним запросом.
|
|||
|---|---|---|---|
|
#18+
FFA Пока они выполняются, balance может измениться, это не безопасно. для этих случаев собственно и придумали транзакции FFA Я использую очень урезанный коннектор, который выполняет каждый запрос отдельно. тогда мутите локи вручную... PS. мы однажды сделали решение для сингапурского клирингового центра и там ваша задача решалась так: тысячи клиентов генерировали транзакции, которые должны были менять разные состояния, в вашем случае это один из простейших примеров так вот все эти транзакции складывались в очередь асинхронно, то есть в случайном порядке а выполнялись уже отдельным воркером один за другим таким образом мы обеспечили работу системы, но при этом на уровне технического задания мы сначала выторговали, что каждая примененная к балансам операция не обязана быть мгновенной ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2014, 21:23:53 |
|
||
|
Отнять из одного поля и прибавить к другому. Одним запросом.
|
|||
|---|---|---|---|
|
#18+
FFA, или всё запихать в хранимку - один запрос, и транзакции проще, и на всё выполнение меньше времени ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2014, 22:10:41 |
|
||
|
Отнять из одного поля и прибавить к другому. Одним запросом.
|
|||
|---|---|---|---|
|
#18+
FFAВсем привет. Нужен запрос для перевода суммы со счета на счет. Есть конечно простой метод: Код: sql 1. 2. 3. 4. Но тут целых 3 запроса. Пока они выполняются, balance может измениться, это не безопасно. Я использую очень урезанный коннектор, который выполняет каждый запрос отдельно. accid - int, уникальный, не key Пожалуйста помогите составить запрос. попробуйте: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2014, 22:42:51 |
|
||
|
Отнять из одного поля и прибавить к другому. Одним запросом.
|
|||
|---|---|---|---|
|
#18+
FFA Код: sql 1. 2. 3. 4. Код: sql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2014, 22:43:24 |
|
||
|
Отнять из одного поля и прибавить к другому. Одним запросом.
|
|||
|---|---|---|---|
|
#18+
или даже пороще Код: sql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2014, 23:00:28 |
|
||
|
Отнять из одного поля и прибавить к другому. Одним запросом.
|
|||
|---|---|---|---|
|
#18+
Ребят, спасибо за помощь. Способ от javajdbc не могу до конца понять, т.к. не понимаю эту конструкцию: Код: sql 1. 2. 3. 4. Юзаю код Akina. Пишу ф-ю, пытаюсь впихнуть Код: sql 1. , где ret - переменная функции, которая возвращается RETURN'ом, но что-то не получается пока. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2014, 02:37:02 |
|
||
|
Отнять из одного поля и прибавить к другому. Одним запросом.
|
|||
|---|---|---|---|
|
#18+
FFAРебят, спасибо за помощь. Способ от javajdbc не могу до конца понять, т.к. не понимаю эту конструкцию: Код: sql 1. 2. 3. 4. Юзаю код Akina. Пишу ф-ю, пытаюсь впихнуть Код: sql 1. , где ret - переменная функции, которая возвращается RETURN'ом, но что-то не получается пока. По идее мой код идентичен от коду Акина (и моему сомому первому, правда кажется подселект EXISTS в апдейте не разрешен). (select 1 from account a2 where a2.accid=1 and a2.balance >= 100 ) выдаст пустое множество если на балансе акоунт1 будет меньше чем 100. Этот селект "помножен" (картезиан джойн) на основной апдейт. Т.е апдейт пройдет если данный селект вернет один рекорд и апдейта не будет если селект вернет пустое множество. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2014, 02:52:57 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38762783&tid=1834155]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
95ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 200ms |
| total: | 384ms |

| 0 / 0 |
