![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Clio |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 6.11.2007 Репутация: нет Всего: нет |
Добрый вечер. У меня вопрос по SQL и DERBY.
У меня есть таблица SESSION_MODE, состоящая из 2 полей: 1) id SMALLINT PRIMARY KEY GENERATED ALWAYS AS IDENTITY 2)mode VARCHAR(10) UNIQUE NOT NULL. Мне, необходимо вставить в таблицу значени строки mode только , если такой строки нет в таблице. Mожно ли сделать этот запрос одной SQL-командой insert (я не силен в SQL). Я делал так:
|
|||
|
||||
| ecologist |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 452 Регистрация: 28.2.2007 Репутация: 2 Всего: 9 |
Как-то сложно придумано - нельзя ли просто сделать запрос на INSERT ? А то связываться с ResultSet.CONCUR_UPDATABLE - а вдруг драйвер такое не реализует ?
А еще вариант - сделать уникальный индекс на поле. И если такое уже есть, то будет exception, который можно ловить. Это сообщение отредактировал(а) ecologist - 30.1.2009, 10:54 |
|||
|
||||
| EJack |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 110 Регистрация: 4.9.2007 Репутация: нет Всего: нет |
А не проще такая последовательность
и если кол-во рано 0 то
|
||||
|
|||||
| ecologist |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 452 Регистрация: 28.2.2007 Репутация: 2 Всего: 9 |
Тут может быть одна проблема - если приложение многопользовательское, то без проверки на уникальность два пользователя могут одновременно вставить одинаковые числа. Сначала один проверит, узнает, что нет, потом второй тое проверит. А помто оба добавят. Фигня получится.
Лучше тогда индекс добавить и ловить экспешн. |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |