2016-06-11 38 views
0

我使用MySQL工作臺5.7MySQL的錯誤代碼:1265年數據截斷列 'prod_code' 在第7行

我有以下表中創建和存儲過程:

DROP TABLE MV_SALESBYMONTH; 
CREATE TABLE MV_SALESBYMONTH 
(
`time_year` int, `time_month` int, `prod_code` int,`sale_units` int, `sale_price` int); 

DELIMITER $$ 
CREATE procedure `REFRESH_MV_SALESBYMONTH`() BEGIN 

    TRUNCATE TABLE `MV_SALESBYMONTH`; 

    INSERT INTO MV_SALESBYMONTH 
    (SELECT TIME_YEAR AS 'YEAR', TIME_MONTH AS 'MONTH', PROD_CODE AS 'PRODUCT', 
    SUM(SALE_UNITS) AS 'UNITS SOLD', SUM(SALE_UNITS*SALE_PRICE) AS 'SALES TOTAL' 
    FROM TIME T, SALES S 
    WHERE S.TIME_ID = T.TIME_ID 
    GROUP BY TIME_YEAR, TIME_MONTH, PROD_CODE); 
END $$ 
DELIMITER ; 

STEP 5:使用物化視圖

CALL REFRESH_MV_SALESBYMONTH(); 

SELECT * FROM MV_SALESBYMONTH; 

當我嘗試運行語句:

CALL REFRESH_MV_SALESBYMONTH(); 

我得到錯誤1265:在第7行的列'prod_code'的數據被截斷

+0

列sales.prod_code的數據類型是什麼? –

+0

查看錶格:MV_SALESBYMONTH:prod_code是一個整數。 CREATE TABLE MV_SALESBYMONTH ( 'time_year' int,'time_month' int,'prod_code' int,'sale_units' int,'sale_price' int); – Smokey0101

+0

'TIME T,SALES S'中的'PROD_CODE'是什麼類型? (使用表別名使得查詢更具可讀性。) – Rudie

回答

0

在create table語句中將prod_code定義爲varchar(100)。這樣它可以保存源數據中可能的最大字符數。

相關問題