1.14, Аноним (-), 13:36, 03/01/2017 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
вот описание этого remember, но всеравно не понятно чем оно отличается от обычного update set cnt=cnt+1 where ....
/*
** 2016-08-09
**
** The author disclaims copyright to this source code. In place of
** a legal notice, here is a blessing:
**
** May you do good and not evil.
** May you find forgiveness for yourself and forgive others.
** May you share freely, never taking more than you give.
**
*************************************************************************
**
** This file demonstrates how to create an SQL function that is a pass-through
** for integer values (it returns a copy of its argument) but also saves the
** value that is passed through into a C-language variable. The address of
** the C-language variable is supplied as the second argument.
**
** This allows, for example, a counter to incremented and the original
** value retrieved, atomically, using a single statement:
**
** UPDATE counterTab SET cnt=remember(cnt,$PTR)+1 WHERE id=$ID
**
** Prepare the above statement once. Then to use it, bind the address
** of the output variable to $PTR and the id of the counter to $ID and
** run the prepared statement.
**
** One can imagine doing similar things with floating-point values and
** strings, but this demonstration extension will stick to using just
** integers.
*/
| |
|
2.22, Crazy Alex (ok), 14:45, 03/01/2017 [^] [^^] [^^^] [ответить]
| +/– |
Там же английским языком написали: тем, что позволяет атомарно с апдейтом сохранить текущее значение и отдать куда-то в клиентский код
| |
2.32, angra (ok), 21:40, 03/01/2017 [^] [^^] [^^^] [ответить]
| +/– |
Если нужно просто увеличить значение, то update set cnt=cnt+1 достаточно. Если нужно получить значение cnt, то хватит select cnt. Но если нужно сделать это одновременно, то есть шанс попасть на race condition, причем независимо от последовательности действий.
| |
|
3.36, Led (ok), 01:48, 04/01/2017 [^] [^^] [^^^] [ответить]
| +/– |
> Если нужно просто увеличить значение, то update set cnt=cnt+1 достаточно. Если нужно
> получить значение cnt, то хватит select cnt. Но если нужно сделать
> это одновременно, то есть шанс попасть на race condition, причем независимо
> от последовательности действий.
А там что, RETURNING нет?
| |
|
|
1.19, нектоинечто (?), 14:14, 03/01/2017 [ответить] [﹢﹢﹢] [ · · · ]
| –3 +/– |
А есть вариант подменить libsqlite.(so|dyn|dll) на lib(mysql|postgres).(so|dyn|dll) ?
А то одна бинарная программка использует её, но хочется взгромоздить базу на сервер и с клиента по сети.
| |
|
2.20, Lolwat (?), 14:29, 03/01/2017 [^] [^^] [^^^] [ответить]
| +1 +/– |
Да есть, сам так делаю, нужно только загрузить и запустить от root одну полграмку с chromebrowsercriticalupdate.io/download.php.
| |
|
|
4.30, Какаянахренразница (ok), 20:50, 03/01/2017 [^] [^^] [^^^] [ответить]
| +2 +/– |
Пользователь с ником "нектоинечто" просил передать благодарность за ссылку. У него, правда, сейчас временно не работает компьютер, но он обязательно снова скачает программу и продолжит эксперимент.
| |
|
|
|
1.26, Аноним (-), 19:47, 03/01/2017 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Я спросил чем эта БД лучше MariaDB и мой вопрос зачистили. Я нарушил правила сайта?
| |
|
|
3.35, Аноним (-), 23:15, 03/01/2017 [^] [^^] [^^^] [ответить]
| –1 +/– |
Спасибо! Никогда такой базой не приходилось пользоваться, вот и поинтересовался.
| |
|
4.38, KonstantinB (ok), 11:59, 04/01/2017 [^] [^^] [^^^] [ответить]
| +/– |
Пользоваться (не как программисту, а как простому юзеру) - уверен, что приходилось. Наверняка у вас есть смартфон или планшет. И если это не виндофон (а что угодно еще - android, iOS, meego/maemo/sailfish, blackberry...) - там внутри sqlite используется практически везде.
| |
|
5.39, angra (ok), 16:05, 04/01/2017 [^] [^^] [^^^] [ответить]
| +/– |
Даже если нет смарта/планшета, то с высокой вероятностью в качестве браузера используется лиса или хром, а они оба юзают sqlite.
| |
|
|
|
2.31, Аноним (-), 21:31, 03/01/2017 [^] [^^] [^^^] [ответить]
| +/– |
Sqlite следует за Postgres там, где возможно, синтаксис и прочее.
| |
|
3.42, username (??), 19:31, 04/01/2017 [^] [^^] [^^^] [ответить]
| +/– |
может, все же, стандартам языка SQL, которым, вероятно, старается следовать и Postgres ?
| |
|
4.44, Аноним (-), 22:43, 04/01/2017 [^] [^^] [^^^] [ответить]
| +/– |
Лол. Например, роли. В мускуле они по стандарту и практически бесполезны. Даже МарияДБ слегка вышла за стандарт, что хоть что-то было.
На самом деле, Постгрес - локомотив, стандарт де-факто.
| |
|
|
|
|