в этой статье предлагаются некоторые решения для бутстрапа css http://eddmann.com/posts/providing-local-js-and-css-resources-for-cdn-fallbacks/
, альтернативно это работает для fontawesome
Альтернатива СЛИЯНИЮ ("старомодный путь"):
begin
insert into t (mykey, mystuff)
values ('X', 123);
exception
when dup_val_on_index then
update t
set mystuff = 123
where mykey = 'X';
end;
Другая альтернатива без проверки исключения:
UPDATE tablename
SET val1 = in_val1,
val2 = in_val2
WHERE val3 = in_val3;
IF ( sql%rowcount = 0 )
THEN
INSERT INTO tablename
VALUES (in_val1, in_val2, in_val3);
END IF;
Оператор MERGE объединяет данные между двумя таблицами. Используя ДВОЙНОЙ позволяет нам использовать эту команду. Обратите внимание, что это не защищено от параллельного доступа.
create or replace
procedure ups(xa number)
as
begin
merge into mergetest m using dual on (a = xa)
when not matched then insert (a,b) values (xa,1)
when matched then update set b = b+1;
end ups;
/
drop table mergetest;
create table mergetest(a number, b number);
call ups(10);
call ups(10);
call ups(20);
select * from mergetest;
A B
---------------------- ----------------------
10 2
20 1
Из http://www.praetoriate.com/oracle_tips_upserts.htm :
"В Oracle9i UPSERT может выполнить эту задачу одним оператором: «
INSERT
FIRST WHEN
credit_limit >=100000
THEN INTO
rich_customers
VALUES(cust_id,cust_credit_limit)
INTO customers
ELSE
INTO customers SELECT * FROM new_customers;
Двойной пример выше, который находится в PL / SQL, был великолепен, потому что я хотел сделать что-то подобное, но я хотел это на стороне клиента ... так что вот SQL, который я использовал для отправки аналогичного оператора прямо из некоторого C #
MERGE INTO Employee USING dual ON ( "id"=2097153 )
WHEN MATCHED THEN UPDATE SET "last"="smith" , "name"="john"
WHEN NOT MATCHED THEN INSERT ("id","last","name")
VALUES ( 2097153,"smith", "john" )
Однако с точки зрения C # это обеспечивает более медленное выполнение, чем выполнение обновления и проверка, были ли затронутые строки равными 0, и выполнение вставки, если это было.