MySql 儲存過程 臨時表 無法插入資料
阿新 • • 發佈:2019-01-24
今天在寫儲存過程的時候,發現一個問題就是,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查詢列名與變數名不要重複