2016-08-15 69 views
0

我想知道是否有人知道,或者如果它是可以設置(ID,名字,姓氏)的下方,在過程中,我可以通過鍵入插入新的客戶...在SQL中插入一行並在存儲過程中設置變量?

CALL ('1','John','Smith'); 
CALL ('2', 'Jane','Smith'); and so on. 

目前我的代碼如下喜歡這個。我正在使用phpMyAdmin

CREATE PROCEDURE spUpdateCustomers(id INT(10), 
FirstName VARCHAR(30), 
LastName VARCHAR(30)) 
BEGIN 
INSERT INTO customers (CustomerID, CustomerFirstName, CustomerLastName) VALUES (id , FirstName, LastName); 
END 

然後我打電話給它使用。

SET @id='1'; 
SET @FirstName='John'; 
SET @LastName='Smith'; 
CALL spUpdateCustomer(@id, @firstName, @lastName); 

我的目標是避免在每次調用之前設置每個變量。任何幫助,將不勝感激!

+1

標記您正在使用的dbms。 (該代碼看起來不像ANSI SQL。) – jarlh

+0

不清楚你想要什麼,兩個過程調用都可以從phpmyadmin中正常工作 –

+0

感謝您關注此問題,我在phpMyAdmin中使用了MySQL 5.6.26。我不知道爲什麼,但是當我再次運行代碼時,它工作正常!謝謝你的幫助。 –

回答

0

你並不需要定義變量參數值:

CALL spUpdateCustomer(1, 'John', 'Smith'); 

注意:你的程序的第一個參數被定義爲整數。 MySQL隱式地將'1'轉換爲1(字符串轉換爲整數)。不過,如果您正在數據庫服務器上執行該過程,那麼嚴格使用整數值作爲整數參數將是一個好習慣。

相關問題