[英]SQL - result of Stored Procedures
我有兩個表,A和B,我有第三個表,連接A和B,我使用mariadb數據庫,我想將結果存儲在第三個表result_A_B中,但是當我運行“ CALL session_cpu_procedure() “:錯誤1136(21S01):列計數與第1行的值計數不匹配
CREATE TABLE result_A_B (
ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
cid nvarchar(100) NOT NULL,
time datetime NOT NULL,
OS nvarchar(100) NOT NULL,
program nvarchar(100) NOT NULL,
nb_OS_by_program FLOAT NOT NULL,
cpu FLOAT,
last_line int NOT NULL,
PRIMARY KEY (`ID`),
UNIQUE KEY (`cid`,`time`,`program`) ) ENGINE=InnoDB;
DELIMITER |
CREATE PROCEDURE session_cpu_procedure()
BEGIN
TRUNCATE result_session_cpu_CPLSVFX201P;
INSERT INTO result_session_cpu_CPLSVFX201P
SELECT DISTINCT C.cid, C.time, C.OS, C.program, COUNT(*) as nb_OS_by_program, O.cpu, C.last_line
FROM session_test C LEFT outer JOIN cpu_test O ON O.sid2 = C.cid and O.time = C.time and C.PROGRAM=O.MODULE
where C.time
GROUP BY C.time, C.OS, C.program, C.last_line;
END |
DELIMITER ;
CALL session_cpu_procedure();
我想知道如何解決此錯誤:錯誤1136(21S01):列計數與第1行的值計數不匹配,感謝您的答復
您有一個包含8列的表。
您的SELECT... INSERT
語句有7列。
這產生了相當不言自明的錯誤。
選項1:
由於您已經有一個UNIQUE鍵,因此將此鍵設為主鍵並刪除AUTO_INCREMENT列。
選項2:
在INSERT SELECT
明確列出有關省略auto_increment列的列:
INSERT INTO result_session_cpu_CPLSVFX201P
(cid, time, OS, program, nb_OS_by_program, CPU, lastline)
SELECT ....
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.