1. 程式人生 > >MySql 儲存過程 臨時表 無法插入資料

MySql 儲存過程 臨時表 無法插入資料

今天在寫儲存過程的時候,發現一個問題就是,sql明明能查出資料,為啥無法插入到臨時表、實體表呢?
儲存過程擷取如下:

BEGIN
    /********************************
    **作者:jiankunking
    **功能:demo
    **日期:2016-12-27
    **修改日期:2016-01-09
    *********************************/

    /* 傳入入引數
         '002',1,90
     CALL PROC_DEMO('002');
    */
  DECLARE TABLEANAME VARCHAR(30);
  -- 建立臨時表,把需要參加計劃的倉庫放入臨時表
DROP TEMPORARY TABLE IF EXISTS TEMPTABLEANAME; SELECT OCODEARGUMENT; CREATE TEMPORARY TABLE TEMPTABLEANAME(LINID INT NOT NULL AUTO_INCREMENT,TABLEANAME VARCHAR(40),PRIMARY KEY(LINID)); INSERT INTO TEMPTABLEANAME(TABLEANAME) SELECT TABLEANAME FROM JIANKUNKING_TABLEANAME WHERE OCODE=OCODEARGUMENT AND
IFNULL(PLANFLG,0)=1;
SELECT * FROM TEMPWAREHOUSE; END

為啥呢?臨時表不行,實體表也不行。。。。。。。

SELECT TABLEANAME FROM JIANKUNKING_TABLEANAME WHERE OCODE='002' AND IFNULL(PLANFLG,0)=1;

在資料庫中執行是有值的啊
這裡寫圖片描述
但查詢臨時表,卻沒有插入值:
這裡寫圖片描述

後來發現,原來是:儲存過程中聲明瞭一個與資料庫中表列名一樣的變數,導致的,修改變數名字或者在查詢時在列名前,新增表名 即可解決。
這裡寫圖片描述

SQL查詢列名與變數名不要重複