![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
MySQL 5.0 - "клон" Interbase ?
MsGuns © (2008-06-24 11:20:00)Вчера писал рецензию на дипломную работу и, просматривая раздел записки с описанием скрипта создания БД, наткнулся на генераторы, триггеры After/Befor, UDF-ки и прочие интербэйзовые штучки.
Был зело удивлен
Правильный-Вася (2008-06-26 20:36:00) [1]
> У тебя все в порядке с логикой?
у меня в порядке, а у тебя проблемы с восприятием написанного
перечитай еще раз
не все, что можно делать, стоит делать
Anatoly Podgoretsky (2008-06-26 20:02:00) [2]> Правильный-Вася (26.06.2008 15:26:39) [39]
Использовать нельзя, а иммитировать можно.
У тебя все в порядке с логикой?
А еше Правильный
Johnmen (2008-06-26 17:46:00) [3]
> "не сотвори себе кумира"
Хм... А где про кумира?
Правильный-Вася (2008-06-26 17:26:00) [4]
> Главный программист планеты, Б.Гейтс
> А я с ним заодно...
"не сотвори себе кумира"
Sergey13 (2008-06-26 16:13:00) [5]> [37] PEAKTOP © (26.06.08 14:49)
Я честно говоря не особо понял зачем при этом рулить туда-сюда генератором, но наверное ты прав - найти применение можно. Но для менятрудно. 8-)
Johnmen (2008-06-26 16:08:00) [6]
> автоинкрементные поля - зло, их невозможно использовать
> нормально
Главный программист планеты, Б.Гейтс, с тобой не согласен.
А я с ним заодно...
Правильный-Вася (2008-06-26 15:26:00) [7]
> в ИБ/ФБ их используют для иммитации автоинкриметных полей
> так это из-за недостатков ИБ/ФБ.
это как раз достоинство, а не недостаток
автоинкрементные поля - зло, их невозможно использовать нормально
Anatoly Podgoretsky (2008-06-26 14:52:00) [8]> Правильный-Вася (26.06.2008 11:06:32) [32]
Генераторы придуманы не для создания каких либо ключей и единственно только для генерации значений, вне транзакции, они вообще к полям отношения не имеют, а то что в ИБ/ФБ их используют для иммитации автоинкриметных полей так это из-за недостатков ИБ/ФБ.
PEAKTOP (2008-06-26 14:49:00) [9]> Хотя мне сложно придумать применение для игр с генератором
> при многопользовательской работе.
Да ну есть такие области применения. Например, когда учетная система - Распределенная СУБД, и ежедневно филиальные базы приносят на флешках на центральный офис и скидывают в общую папку. Кто их потом подгрузит в центральную базу - леший ведает. Вот и надо обеспечить НЕвозможность одновременной подгрузки одного и того же филиала с разных компов. Тут на помощь транзитивно-независимые переменные и приходят.
Sergey13 (2008-06-26 13:11:00) [10]> [35] Правильный-Вася (26.06.08 12:06)
> узко смотришь
Так китаец я. 8-)
> это всего лишь глобальная переменная базы
Это просто разный подход производителя к проблеме. Некторыми вещами производитель позволяет играться, другими нет. У оракла помнится около 200 настроечных параметров, у жарптицы меньше десятка вроде. У жарптицы возможны несколько одновременных транзакций в одной сессии у оракла 1. Плохо ли хорошо ли - не знаю, но вот от ораклистов как то меньше поступает вопросов на тему "я вставил запись - где она". Оракл не дает так лихо рулить сиквенсами, поэтому наверное у его пользователей поменьше и конфликтов при вставке. Хотя мне сложно придумать применение для игр с генератором при многопользовательской работе.
Правильный-Вася (2008-06-26 12:06:00) [11]
> Они не для того и придуманы.
узко смотришь
это всего лишь глобальная переменная базы
а как ее использовать, дело разработчика
если он видит в ней смысл только для автоинкремента, его право
но не стоит ограничивать других
Sergey13 (2008-06-26 11:57:00) [12]> [32] Правильный-Вася (26.06.08 11:06)
> но нельзя одновременно сиквенс то вперед, то назад дергать
Ну и слава богу! 8-)
Они не для того и придуманы.
MsGuns (2008-06-26 11:37:00) [13]>а уж в однопользовательских системах это вообще простор для фантазии
Ну почему же в однопользовательских ?
У меня генераторы используются для нумерации документов в системе. Для каждого типа документов - свой генератор, сбрасываемый 1-го января если нужно.
Правильный-Вася (2008-06-26 11:06:00) [14]
> есть параметр increment by, который может быть и отрицательным
может
но нельзя одновременно сиквенс то вперед, то назад дергать
> в чем практическая необходимость декремента?
генераторы можно применить ведь не только для создания искусственных первичных ключей
а уж в однопользовательских системах это вообще простор для фантазии
Sergey13 (2008-06-26 08:51:00) [15]> [24] Правильный-Вася (25.06.08 16:40)
> а в обратную сторону?
Вроде как в оракловой секвенции есть параметр increment by, который может быть и отрицательным.
Кщд (2008-06-26 06:08:00) [16]Игорь Шевченко © (25.06.08 22:50) [28]
>INSERT INTO foo(id,name) VALUES ((SELECT foo_seq.NEXTVAL FROM dual),'NAME');
теперь можно и без select from dual
Кщд (2008-06-26 06:00:00) [17]>Правильный-Вася (25.06.08 16:40) [24]
>а в обратную сторону?
собственно, этим и интересовался: в чем практическая необходимость декремента?
Игорь Шевченко (2008-06-25 22:50:00) [18]
> Возможно, в Оракле так и есть - конкретно систаксис и особенности
> Оракла я не знаю, так что судить не могу.
В оракле много чего есть - он большой и толстый
> можно прямо в Insert делать автоинкремент без триггера INSERT
> INTO MY_TABLE(ID, NAME)VALUES(NEXT VALUE FOR <SEQUENCE_NAME>,
> 'VALUE');
ну да, ну да.
INSERT INTO foo(id,name) VALUES ((SELECT foo_seq.NEXTVAL FROM dual),
'NAME');
Loginov Dmitry (2008-06-25 22:23:00) [19]> Удобства, конечно прибавилось: можно прямо в Insert делать
> автоинкремент без триггера INSERT INTO MY_TABLE(ID, NAME)
> VALUES(NEXT VALUE FOR <SEQUENCE_NAME>, 'VALUE');
А чем это отличается от возможности
INSERT INTO MY_TABLE(ID, NAME)VALUES(GEN_ID(<SEQUENCE_NAME>, 1), 'VALUE');
которая есть с давних времен?
Anatoly Podgoretsky (2008-06-25 20:19:00) [20]> PEAKTOP (25.06.2008 18:53:25) [25]
Вот взял все и приземлил, некоторые Ораклисты утверждают, что SEQUENCE в Оракл не имеет аналогов, IB/FB/MsSQL это всего лишь бледные поделки.