我試圖通過創建一個游標從我創建的視圖中進行選擇來獲得諸如(A – PC 1001 為 2114 美元)的輸出。“A”是制造商,“1001”是型號,“$2114”是價格。我認為我在將它們保存在回圈中時遇到了問題,但我不確定。我也很好奇如何從視圖中訪問模型,因為它是(a.model),但試圖弄清楚如何讓游標首先作業。在宣告變數和訪問我認為的別名時遇到問題。concat 陳述句不完整,因為我遇到了其他變數的問題。
這是我嘗試使用游標訪問的視圖示例。
CREATE VIEW PCView
AS SELECT maker, a.model, speed, ram, hd, price
FROM PC a, Product b
WHERE a.model=b.model;
輸出
-----------------------------------------------------------
| @PCList
|
-----------------------------------------------------------
| - PCfor 0- PCfor 0- PCfor 0- PCfor 0- PCfor 0- PCfor 0- PCfor 0- PCfor 0-
PCfor 0- PCfor 0- PCfor 0- PCfor 0- PCfor 0 |
-----------------------------------------------------------
uj5u.com熱心網友回復:
在 Mysql 中,如果我解決了一些問題,該程式可以作業
CREATE TABLe PC(maker varchar(10), model varchar(10))
INSERT INTO PC VALUES('Me','pc1')
CREATE TABLE Product(model varchar(10), price decimal(10,2))
INSERT INTO Product VALUES('pc1',10.2)
CREATE VIEW PCView
AS SELECT maker, a.model, price
FROM PC a JOIN Product b
ON a.model=b.model;
CREATE PROCEDURE createPCList (
INOUT PCList varchar(4000)
)
BEGIN
DECLARE finished INTEGER DEFAULT 0;
DECLARE _maker VARCHAR(100) DEFAULT "";
DECLARE _price INTEGER DEFAULT 0;
-- declare cursor for PCView
DECLARE curPC CURSOR FOR SELECT maker, price FROM PCView;
-- declare NOT FOUND handler
DECLARE CONTINUE HANDLER
FOR NOT FOUND SET finished = 1;
SET PCList = '';
OPEN curPC;
getPC: LOOP
FETCH curPC INTO _maker,_price;
IF finished = 1 THEN
LEAVE getPC;
END IF;
-- build list
SET PCList = CONCAT(_maker,"- PC ", "for ", _price, PCList);
END LOOP getPC;
CLOSE curPC;
END
call createPCList(@pclist)
SELECT @pclist
| @pclist |
|---|
| Me-PC 10 |
SELECT * FROM PCView
| 制作者 | 模型 | 價格 |
|---|---|---|
| 我 | pc1 | 10.20 |
小提琴
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/522269.html
標籤:mysqlsql看法光标
