簡體   English   中英

如何在使用MySQL的同一存儲過程中使用插入和更新查詢?

[英]How to use insert and update query with in the same stored procedure using mysql?

在我的項目中,我正在使用存儲過程。 在這里,我已經寫了查詢以插入數據。 那是,

CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_studentdetails`(
in inputStream mediumblob,
in salutation varchar(50),
in fname varchar(50),
in mname varchar(50),
in lname varchar(50),
in dob varchar(50),
in gender varchar(50),
in identify varchar(50),
in nationality varchar(50),
in blood varchar(50),
in physical varchar(50),
in health varchar(50),
in nationalid varchar(50),
in mtongue varchar(50)
)
BEGIN
INSERT INTO 
tbl_student_details(studentpic,salutation,fname,mname,lname,
dob,gender,identify,nationality,blood,physical,health,nationalid,mtongue)
values (inputStream,salutation,fname,mname,lname,
dob,gender,identify,nationality,blood,physical,health,nationalid,mtongue);
END

在這里,我想為此表添加一個更新查詢。 我不知道該怎么辦。

你可以用

INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE c=c+1;

參見https://dev.mysql.com/doc/refman/5.7/en/insert-on-duplicate.html

當然,您必須為其構建程序

在您的情況下,這看起來應該像

INSERT INTO 
    tbl_student_details
        (
          studentpic,salutation,fname,mname,lname,
          dob,gender,identify,nationality,blood,physical,
          health,nationalid,mtongue
        )
    values 
        (
          inputStream,salutation,fname,mname,lname,
          dob,gender,identify,nationality,blood,physical,
          health,nationalid,mtongue
        )
ON DUPLICATE KEY UPDATE
        (
          studentpic=inputStream,salutation=salutation,fname=fname,....
          -- go with rest of your variables...
          -- you should consider to use diffrent name or quote them right
        );

在這里,您需要在數據庫中添加一些導致重復效果的唯一列。 您可以將ID列作為主鍵添加到您的創建中。

編輯:根據您的評論

您仍然要做同樣的事情……您將更新現有數據,包括該行的新數據,或者當您可以分開時僅更新數據。

例如

insert into tbl(a,b,c) values ('aaa','bbb','ccc') 
ON DUPLICATE KEY UPDATE b='bbb', c='ccc', d='ddd', e='eee', f='fff';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM