Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
07.01.2011, 19:11
|
|||
---|---|---|---|
|
|||
Как сделать if not exists в запросе create table ? |
|||
#18+
В MySQL есть можно написать так: Код: plaintext
Всё, что смог нагуглить, это необходимость вручную писать такую функцию через pl/sql. Но я не верю, что Oracle не имеет возможности, которая есть в MySQL. Причём эта возможность весьма очевидная и полезная.. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.01.2011, 19:13
|
|||
---|---|---|---|
|
|||
Как сделать if not exists в запросе create table ? |
|||
#18+
boraldoПричём эта возможность весьма очевидная и полезная..а можно пример необходимости? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.01.2011, 19:16
|
|||
---|---|---|---|
|
|||
Как сделать if not exists в запросе create table ? |
|||
#18+
boraldoМожно сделать тоже самое в Oracle? Просто пиши CREATE TABLE. Если таблица уже есть, ничего не произойдёт. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.01.2011, 19:18
|
|||
---|---|---|---|
|
|||
Как сделать if not exists в запросе create table ? |
|||
#18+
Dimitry SibiryakovПросто пиши CREATE TABLE. Если таблица уже есть, ничего не произойдёт. Это не сработало: Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.01.2011, 19:19
|
|||
---|---|---|---|
|
|||
Как сделать if not exists в запросе create table ? |
|||
#18+
Андрей Панфилова можно пример необходимости? Я хочу организовать ленивую (lazy) таблицу. То есть чтобы она создавалась не сразу при создании схемы, а только по требованию. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.01.2011, 19:19
|
|||
---|---|---|---|
|
|||
Как сделать if not exists в запросе create table ? |
|||
#18+
boraldoЭто не сработало: ORA-00955: имя уже задействовано для существующего объекта Ну и? Просто игнорируй эту ошибку. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.01.2011, 19:20
|
|||
---|---|---|---|
Как сделать if not exists в запросе create table ? |
|||
#18+
авторВсё, что смог нагуглить, это необходимость вручную писать такую функцию через pl/sql. можно и через pl/sql, но тогда обарачивать надо в еxcute immediate с обработкой ошибок. Смысла нет, пиши сразу, как указывали. Да и много DDL в системе- признак "непродуманности" построения данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.01.2011, 19:23
|
|||
---|---|---|---|
|
|||
Как сделать if not exists в запросе create table ? |
|||
#18+
boraldoЯ хочу организовать ленивую (lazy) таблицу. То есть чтобы она создавалась не сразу при создании схемы, а только по требованию. А в чём фишка? Пустая таблица не занимает места, не добавляет накладных расходов. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.01.2011, 19:24
|
|||
---|---|---|---|
|
|||
Как сделать if not exists в запросе create table ? |
|||
#18+
Dimitry SibiryakovboraldoЭто не сработало: ORA-00955: имя уже задействовано для существующего объекта Ну и? Просто игнорируй эту ошибку. Что значит игнорируй? У меня исключение валится, я же не в визуальном клиенте это делаю, а через jdbc. Я конечно могу поймать его и сравнить код ошибки, но это костыль. Нормальное ПО не должно валить ошибку, если заранее известно, что её на самом деле нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.01.2011, 19:27
|
|||
---|---|---|---|
|
|||
Как сделать if not exists в запросе create table ? |
|||
#18+
boraldoЯ конечно могу поймать его и сравнить код ошибки, но это костыль.бизнес-логика на эксепшенах - не круто, проверяйте сначала наличие таблицы (даже sqlplus позволяет). ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.01.2011, 19:27
|
|||
---|---|---|---|
|
|||
Как сделать if not exists в запросе create table ? |
|||
#18+
semenarДа и много DDL в системе- признак "непродуманности" построения данных. Я бы сказал, что это признак того, что это не примитивный онлайн-магазин, а сложная система, которая умеет управлять своими метаданными. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.01.2011, 19:31
|
|||
---|---|---|---|
Как сделать if not exists в запросе create table ? |
|||
#18+
boraldo а сложная система, которая умеет управлять своими метаданными. с этого места подробнее пожалуйста. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.01.2011, 19:36
|
|||
---|---|---|---|
|
|||
Как сделать if not exists в запросе create table ? |
|||
#18+
semenarэтого места подробнее пожалуйста.видимо крутая система, предвижу следующий вопрос: Как создать внешний ключ на sys.obj$ ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.01.2011, 19:43
|
|||
---|---|---|---|
Как сделать if not exists в запросе create table ? |
|||
#18+
Андрей Панфилов, после приведеннной ссылки вопрос снимается. Вам спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.01.2011, 19:45
|
|||
---|---|---|---|
|
|||
Как сделать if not exists в запросе create table ? |
|||
#18+
boraldoэто не примитивный онлайн-магазин, а сложная система, которая умеет управлять своими метаданными. И при этом работает только если все пользователи используют одну учётную запись, причём эта запись имеет права на создание таблиц. Может, для MySQL это и нормально, а в других местах называется бардаком. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.01.2011, 19:56
|
|||
---|---|---|---|
|
|||
Как сделать if not exists в запросе create table ? |
|||
#18+
semenarboraldo а сложная система, которая умеет управлять своими метаданными. с этого места подробнее пожалуйста. Подробнее не могу, ибо коммерческая тайна. Всё, что могу сказать, - нужно общаться к таблице, которой заранее нет и нужно при первом обращении её создать. Dimitry SibiryakovboraldoЯ хочу организовать ленивую (lazy) таблицу. То есть чтобы она создавалась не сразу при создании схемы, а только по требованию. А в чём фишка? Пустая таблица не занимает места, не добавляет накладных расходов. Число таких таблиц ничем неограничено, новые таблицы могут появиться в любой момент, причём в рантайме. По этой причине перечислить их в скрипте создания схемы невозможно. Число схем также неограничено, поэтому создать эту таблицу во всех схемах при появлении таблицы также невозможно. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.01.2011, 19:58
|
|||
---|---|---|---|
|
|||
Как сделать if not exists в запросе create table ? |
|||
#18+
boraldoЧисло таких таблиц ничем неограничено, новые таблицы могут появиться в любой момент, причём в рантайме. Проектировщику базы - персональный эцих с гвоздями. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.01.2011, 19:58
|
|||
---|---|---|---|
|
|||
Как сделать if not exists в запросе create table ? |
|||
#18+
Dimitry Sibiryakovboraldoэто не примитивный онлайн-магазин, а сложная система, которая умеет управлять своими метаданными. И при этом работает только если все пользователи используют одну учётную запись, причём эта запись имеет права на создание таблиц. Может, для MySQL это и нормально, а в других местах называется бардаком. Пользователи вообще не работают с базой данных, они работают через веб-интерфейс, который сам обращается к БД через jdbc. Так что никакого бардака, всё в порядке. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.01.2011, 20:00
|
|||
---|---|---|---|
Как сделать if not exists в запросе create table ? |
|||
#18+
авторЧисло таких таблиц ничем неограничено , новые таблицы могут появиться в любой момент, причём в рантайме. По этой причине перечислить их в скрипте создания схемы невозможно. Число схем также неограничено , поэтому создать эту таблицу во всех схемах при появлении таблицы также невозможно . DBA при таком положении вещей- несчастный человек, разруливая права,аудит,гранты и прочее... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.01.2011, 20:02
|
|||
---|---|---|---|
|
|||
Как сделать if not exists в запросе create table ? |
|||
#18+
semenarАндрей Панфилов, после приведеннной ссылки вопрос снимается. Вам спасибо. Если из этой ссылки вы подумали, что эта таблица - schemas , то вы ошибаетесь. Тот вопрос вообще о другом, к этой теме никак не относится. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.01.2011, 20:37
|
|||
---|---|---|---|
|
|||
Как сделать if not exists в запросе create table ? |
|||
#18+
semenarавторЧисло таких таблиц ничем неограничено , новые таблицы могут появиться в любой момент, причём в рантайме. По этой причине перечислить их в скрипте создания схемы невозможно. Число схем также неограничено , поэтому создать эту таблицу во всех схемах при появлении таблицы также невозможно . DBA при таком положении вещей- несчастный человек, разруливая права,аудит,гранты и прочее... Ничего такого не нужно по причине описанной выше: пользователь БД может быть всего один, пользователи системы к базе доступа вообще не имеют. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.01.2011, 20:53
|
|||
---|---|---|---|
Как сделать if not exists в запросе create table ? |
|||
#18+
boraldoЧисло таких таблиц ничем неограничено, новые таблицы могут появиться в любой момент, причём в рантайме.Стоит также задуматься над созданием новой базы в рантайме и установке сервера. Тут могут помочь виртуальные машины. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.01.2011, 21:35
|
|||
---|---|---|---|
|
|||
Как сделать if not exists в запросе create table ? |
|||
#18+
boraldoВ MySQL есть можно написать так: Код: plaintext
Всё, что смог нагуглить, это необходимость вручную писать такую функцию через pl/sql. Но я не верю, что Oracle не имеет возможности, которая есть в MySQL. Причём эта возможность весьма очевидная и полезная.. Какая-то странная логика... В мускуле, наверное, не предусмотрена работа с исключениями, поэтому и добавили такое в синтаксис. Иначе странно добавлять условие, единственной задачей которого является проглатывание ошибки. И даже в этом случае странно добавлять такие условия... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.01.2011, 22:15
|
|||
---|---|---|---|
|
|||
Как сделать if not exists в запросе create table ? |
|||
#18+
xtenderВ мускуле, наверное, не предусмотрена работа с исключениями, поэтому и добавили такое в синтаксис. Иначе странно добавлять условие, единственной задачей которого является проглатывание ошибки. И даже в этом случае странно добавлять такие условия... 1) В MySQL есть работа с ошибками 2) Речь не о попытке создать таблицу и проглотить исключение. В случае, если указана опция if not exists , БД должна проверить, есть ли такая таблица и только если нет, создать. Никаких проглатываний исключений. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.01.2011, 22:25
|
|||
---|---|---|---|
|
|||
Как сделать if not exists в запросе create table ? |
|||
#18+
boraldoxtenderВ мускуле, наверное, не предусмотрена работа с исключениями, поэтому и добавили такое в синтаксис. Иначе странно добавлять условие, единственной задачей которого является проглатывание ошибки. И даже в этом случае странно добавлять такие условия... 1) В MySQL есть работа с ошибками 2) Речь не о попытке создать таблицу и проглотить исключение. В случае, если указана опция if not exists , БД должна проверить, есть ли такая таблица и только если нет, создать. Никаких проглатываний исключений. Как бы фантастично это не прозвучало, но даже без этой "опции" таблицу создаст только если ее нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=52&mobile=1&tid=1882371]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
45ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 165ms |
0 / 0 |