Zamiast INSERTA -> UPDATE

0

Dodaje do bazy tabele z datą i z wartosciami zmiennoprzecinowymi, jakie wygenerowac pytanie (warunek) by tabela zostala sprawdzona czy istnieje i ewentualnie zostal stworzony update takiej tabeli badz insert z poziomu SQL'a.

0

nie ma SQLa w stylu INSERT OR UPDATE ... - musisz sobie sam najpierw sprawdzić a potem wstawić lub zmienić

0

chcialem uzyc if exist ale niestety sqlite nie wspiera tego
<url>
http://www.sqlite.org/cvstrac/wiki?p=UnsupportedSql
</url>
i zastanawiam sie nad jakims triggerem

0

IF EXIST odnosi się do czegoś innego - do DROP TABLE

i jak już, to stored proc bo nie wiem jakby to miało być w triggerze

0

może chodzi o:

REPLACE INTO tabela (pola) VALUES (wartosci)

jeżeli dany rekord istnieje (patrząc po kluczach głównych i chyba unikach) - zostaje zastąpiony, w przeciwnym wypadku działa jak zwykły INSERT

0
tomkiewicz napisał(a)

może chodzi o:

REPLACE INTO tabela (pola) VALUES (wartosci)

jeżeli dany rekord istnieje (patrząc po kluczach głównych i chyba unikach) - zostaje zastąpiony, w przeciwnym wypadku działa jak zwykły INSERT



No wlasnie samo REPLACE INTO nic nie daje, musi istniec klucz unikalny bo w przeciwnym przypadku nastepuje ZWYKLY INSERT :-)
0

to dlaczego wspomnianego klucza nie założysz?

0
tomkiewicz napisał(a)

to dlaczego wspomnianego klucza nie założysz?

Myslalem ze mozna obejsc taki sposob ale niestety sqlite w ktorym pisze baze jest ograniczony i jedynym rozsadym rozwiazaniem jest zalozenie unikalnego klucza

0

Tak przy okazji:

25 April 2006 New SQL functions Dmitry Yemanov
Implementation of a new aggregate function LIST has been committed into the HEAD branch. It's one of the remaining changes that weren't ported from the Yaffil codebase yet. There are other built-in functions to port, they will be discussed in firebird-devel later this week.

Syntax: LIST ( [DISTINCT] value [ , delimiter ] )

Semantics is similar to the LIST function in Sybase SQL Anywhere and GROUP_CONCAT function in MySQL, with the exception of the ORDER BY clause which is not supported yet.

Also, Adriano dos Santos Fernandes has implemented the new REPLACE function (also about to be committed into HEAD). It can be considered a simplified version of the standard MERGE statement, which allows conditional INSERT or UPDATE operation based on a primary key match.

Syntax: REPLACE INTO table [ ( column_list ) ] VALUES ( value_list )
[ RETURNING column_list [ INTO variable_list ] ]

The SQL99-compliant MERGE statement is also planned for implementation in the future.

Czy dobrze rozumiem, że ta funkcja LIST będzie zwracała wynik selecta złączonego w jednego Stringa ? - jak tak to będzie to wielki bajer, można sobie wykonać jednego LIST'a, wczytać to do CommaText i gotowe, do tej pory robiłem While not q.Eof do ... Swoją drogą to REPLACE to też fajna sparwa, szkoda że nia ma tego w FB1.5.

1 użytkowników online, w tym zalogowanych: 0, gości: 1