crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в тригеры в SQLite, немогу написать
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Tonal Дата 6.2.2009, 11:11
  Ага.
Litkevich Yuriy Дата 6.2.2009, 9:00
  ... FOR EACH ROW WHEN...
про эту?
Tonal Дата 6.2.2009, 8:49
  Ты таки попялься на синтаксическую диограмму для триггера и попробуй понять о каком именно when я писал. :)
Litkevich Yuriy Дата 5.2.2009, 12:15
  я пытался еще так сделать
CREATE TEMPORARY TRIGGER TBI_tmp
    BEFORE INSERT ON tmp
BEGIN
        /* проверим существует ли такой тип в таблице TypeRef */
    CASE
    WHEN (NOT EXISTS(SELECT Type FROM TypeRef WHERE Type = new.Type)) THEN
            INSERT INTO TypeRef (Type) VALUE (new.Type);
    END
END;
Но получил совсем неожиданную ошибку: "Нет такой таблицы TypeRef", хотя селект отдельно работает (проверял копированием дабы избежать опечаток), разумеется условие было жесткое.

Цитата(Tonal @ 5.2.2009, 14:52) *
Если нет - можно написать явно в коде или воспользоваться
да я в sqlbrowser'сижу, так что в коде ни чего не делается :)

Я просто действия пытаюсь постичь, которые мне понядобятся при обработке данных
Tonal Дата 5.2.2009, 11:52
  Возможно подойдёт when кляуза.
Если нет - можно написать явно в коде или воспользоваться хуками.
Litkevich Yuriy Дата 5.2.2009, 11:19
  Нужен такой тригер в SQLite:
CREATE TRIGGER TBI_tmp
    BEFORE INSERT ON tmp
BEGIN
        /* проверим существует ли такой тип в таблице TypeRef */
    IF (NOT EXISTS(SELECT Type FROM TypeRef WHERE Type = new.Type))THEN
        INSERT INTO TypeRef (Type) VALUE (new.Type);
END;


Первичная Цель:
Есть табличка (TypeRef), отчасти заполненая, мне нужно добавить в нее из другой БД пачку данных, но только тех, которых еще нет (по полю Type).

я ни чего умнее не придумал как сделать временную таблицу (tmp) совать в нее данные и тригером проверять если таких еще нет в основной (TypeRef), то вставить их туда.

Грабля:
ключевого слова IF нет в SQLite (ни в доке и запрос тоже на него возмущается).

Как выйти из положения?
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 21.4.2024, 1:58