2014-02-08 32 views
0

我通過互聯網找到更新兩個表的最佳做法,我決定在MySQL中創建存儲過程插入數據。我不知道如何從存儲過程傳遞日期時間或時間戳以插入表中。我對MySQL很新,並且遇到了一些錯誤。我的存儲過程是這樣的:我的第一個MySQL存儲過程更新兩個表有一些錯誤

DELIMITER $$ 
CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_insertUser`(
IN userId int(11) 
, IN userName varchar(15) 
, IN passWord varchar(15) 
, IN create_DateStamp datetime 
, IN update_DateStamp datetime 

BEGIN 
INSERT INTO `Php_Project`.`User` 
(userId, 
userName, 
passWord, 
create_DateStamp, 
update_DateStamp) 


    VALUES 
    (
    userId, 
    userName, 
    passWord, 
    create_DateStamp, 
    update_DateStamp 
    ); 

我也有觸發create_Datestamp爲:

USE `Php_Project`; 
DELIMITER $$ 
CREATE DEFINER=`root`@`localhost` TRIGGER `User_BINS` BEFORE INSERT ON `User` FOR EACH  ROW 
BEGIN 
    -- Set the creation date 
SET new.create_DateStamp= now(); 
End 

我已經在MySQL Workbenck創造了這個。錯誤是當我嘗試調用存儲過程在查詢窗口爲:

CALL `Php_Project`.`sp_insertUser`(1234,surajnew55,password,now(),now()); 

錯誤說:錯誤代碼:1054未知列「surajnew55」在「字段列表」 0.000秒 請幫我弄清楚怎麼回事在這種情況下工作。

+1

改變輸入ARG '用戶名VARCHAR(15)' 傳遞這個

字符串值是「IN theUserName VARCHAR(15) 」。然後將VALUES部分更改爲使用'theUserName'而不是'userName'。我非常確定存儲的項目會被作爲輸入參數超載的userName列弄糊塗。對所有這些列/ inp參數名稱執行相同操作,以便列名與輸入參數名稱不同。 – robnick

+0

@robnick你釘了它。多謝,夥計。 – surajnew55

回答

1

你可以嘗試像應該引號裏面的MySQL

CALL `Php_Project`.`sp_insertUser`(1234,'surajnew55','password',now(),now()); 
相關問題