mySQL View mit Vairablen
karlheinz
- datenbank
0 King^Lully0 karlheinz
Hi,
ich erzeuge in einer procedure eine view:
CREATE PROCEDURE foo(x INT)
BEGIN
create view name as select * FROM tabelle where spalte = x;
END;
mit einem konstanten wert für x ist das kein problem, wenn ich aber variablen in der view verwende, bekomme ich folgende fehlermeldung:
View's SELECT contains a variable or parameter
sind variablen grundsätzlich in views nicht erlaubt? wenn ja, wäre das aber sehr nachteilig.
gruß
karlheinz
sind variablen grundsätzlich in views nicht erlaubt? wenn ja, wäre das aber sehr nachteilig.
Es besteht eventuell in MySQL die Möglichkeit einen String (VARCHAR(x)) zusammenzubasteln und diesen dann auszuführen, als ob er ein normales SQL-Statement darstellt.
Es besteht eventuell in MySQL die Möglichkeit einen String (VARCHAR(x)) zusammenzubasteln und diesen dann auszuführen, als ob er ein normales SQL-Statement darstellt.
und den string dann in die where-klausel setzen? der string wird/muss zwangsläufig in einer variable abgespeichert werden, damit ich den string auch an anderer stelle verwenden kann. oder wie hast du das gemeint? bin nicht ganz schlau aus deiner antwort geworden
Es besteht eventuell in MySQL die Möglichkeit einen String (VARCHAR(x)) zusammenzubasteln und diesen dann auszuführen, als ob er ein normales SQL-Statement darstellt.
und den string dann in die where-klausel setzen?
Den String ausführen (@Var='SELECT * FROM DT_1'; EXEC @VAR;), also ggf. inkl. WHERE-Klausel, Moment, wir gehen mal in die Doku, ...
Ne, sorry, nichts in der Doku gefunden.
Hallo,
Den String ausführen (@Var='SELECT * FROM DT_1'; EXEC @VAR;), also ggf. inkl. WHERE-Klausel, Moment, wir gehen mal in die Doku, ...
Ne, sorry, nichts in der Doku gefunden.
ich habe selbiges Problem. Habe es wie King^Lully mittels execute probiert, "exec" habe ich in der Doku jetzt nicht gefunden...
procedure()
begin
declare var int;
PREPARE stmt1 from 'create view blabla... where spalte = var';
EXECUTE stmt1;
end;
-> ERROR 1351 (HY000): View's SELECT contains a variable or parameter
ganz schön ärgerlich wenn Variablen innerhalb einer View nicht verwendet werden können...
yo,
ganz schön ärgerlich wenn Variablen innerhalb einer View nicht verwendet werden können...
was spricht den dagegen, die view mit einer where klausel aufzurufen also:
select spalte1, spalte2..
from view_name
where spaltex = wert
Ilja
Hallo,
was spricht den dagegen, die view mit einer where klausel aufzurufen also:
select spalte1, spalte2..
from view_name
where spaltex = wertIlja
gar nichts! Problem ist, erzeuge eine View in der eine Where-Klausel vorkommt die Variablen enthält => is nit weil geht nit :)