❶ 這個mysql 存儲過程 哪裡有問題 如果存在記錄就 更新 count + 1,不存在就插入
searchrecord 表裡面的 username 的數據類殲察型毀改派, 是 char(32) ?
searchrecord 表裡面的 type 的數據類型, 是 char(16) ?
還有就是你調用存儲過程的時候, 是怎麼調用的?
還有就是
select count(*),id,count INTO p_isexist,p_id,p_count from searchrecord Where username = usernamep And type = typep;
這個 sql 語句上面, 有點問題。
可以纖賀修改為
select count(*) INTO p_isexist from searchrecord Where username = usernamep And type = typep;
然後後面的
update searchrecord set opdate=NOW(),count = p_count +1 where id = p_id
修改為
update searchrecord set opdate=NOW(),count = count + 1 where username = usernamep And type = typep;
❷ sql 編輯中,要是有數據就update,數據為空就insert into 怎麼實現,下圖
不知道你什麼資料庫.
Oracle 9i、DB2 9、 SQL Server 2008 可以使用 MERGE 語句山沖和
來完成 「數據逗盯已存在就 UPDATE , 數據不存在就 INSERT 」
如果判碧你是 MySQL 資料庫, 那麼可以使用 replace into 語句。
❸ mysql更新欄位記錄沒有則添加
請把ID欄位去肆橋陸除,然後用replace就行了
即:裂頃replace a SET score=score+10 WHERE name='Jack'
注以消渣上指令沒有驗證,請自行修改
❹ mysql 有就更新沒有就插入
使用insert into掘岩 on plicate key update
sql語句為
insertintotableA(`key1`,`key2`,`F1`,`F2`...)values('A','AA',5,5,...)onplicate脊山key判野御update`F1`=`F1`+values(`F1`),`F2`=`F2`+values(`F2`)....
❺ sql server 判斷記錄存在更新不存在插入
寫個存儲過程吧。或者建個主鍵吧,這樣插入就不會插入重復的數據了。
❻ SQL語句 存在就更新不存在就插入
在向表中插入數據的時候,經常遇到這樣的情況:
replace into 跟 insert 功能類似,不同點在於:replace into 首先嘗試插入數據到表中,
replace into
SQL%NOTFOUND 是SQL中的一個隱式游標,在增刪查改的時候自動冊山打開,如果有至少有一條記錄受影響,都會返回false,這就就巧妙的構思出了第一種解決方案:
當Oracle語句執行時,發生了異常exception進行處理
當往表中插入一條數據,因為表中有主鍵約束,如果插入的數據在表中已經存在,則會拋出異常,在異常拋出後進行修改。
al是一個虛擬表,用配侍來構成select的語法規則,oracle保證al裡面永遠只有一條記錄。
先聲明一個變數培姿吵t_count,表al表的值賦給t_count,如果這個值小於1,表示記錄不存在,進行插入操作,反之,存在就進行修改操作。
先查找要插入的記錄是否存在,存在則修改,不存在則插入。具體的實現如下:
先來看一下merge的語法,
❼ mysql一條語句判斷是否存在記錄,有更新,沒有插入
#定義一個變數來保存該記錄鉛和是否存在
declare num int;
#這條sql,就是查詢對應的記錄有多少條,早激賣注意 into num 這兩句話,就是把count(*) 查出的值,賦給到num中
select count(*) into num from t_count_view where TO_DAYS(now())=TO_DAYS(day);
#接下來的就是判斷了,注意,判斷是否等於,只有一個等於號
if(num=0)
#等於號之後,還要寫一陸逗個Then,代表條件成立後要執行的sql
Then
insert into t_count_view(view_people,view_num,day)values(1,1,now());
#else可以直接用,不需要加then
else
update t_count_view set view_people=view_people+1;
#但是當if使用完之後,一定要寫end if,代表著if的條件判斷結束了
end if;
END
❽ 用sql語句更新一條記錄,如果不存在就插入,怎麼寫
PLSQL 的寫法:
begin
update tablename
set xxx=values;
exception
when no_data_found then
insert into tablename
valuse();
end ;
❾ SQL在更新數據時,先判斷數據是否存在。存在就更新update,不存在就插入insert。
先判斷是否存在,存在就更新
IF EXISTS(SELECT 1 FROM sys_emp a,inserted b join hr_emp_title c on b.empid = c.empid)
BEGIN
update c
set c.title_code = b.title_code
from inserted b join hr_emp_title c on b.empid = c.empid
END
不存在就插入
ELSE
BEGIN
insert into hr_emp_title(empid,title_code) select empid ,title_code from inserted;
END
❿ sql,更新表內容,『卡號』這個欄位裡面的內容存在就更新內容,卡號不存在就插入新的記錄
1.把execl表全部倒入到資料庫中的一個臨時表 tab1中,要雀御更新的表tab2
2.寫sql更新
第一步更新物歲大
update tab2 set ?????
from tab2 aa,
(select * from tab1
where 卡號 in (select 卡號 from tab2)) bb
where aa.卡號=bb.卡號
第二步插入
insert into tab2
select * from tab1
where 卡號 not in (select 卡號罩豎 from tab2)