Hallo zusammen,
1)
Das Programm unten funktioniert ohne Problem.
Trotzdem habe ich ein paar Fragen dazu:
Mit
DECLARE cnt INT DEFAULT 0;
muß ich eine Variable deklarieren. Soweit ok.
Aber warum muß ich unten im Programm _nicht_ die Variablen
a1, a2, a3
deklarieren, sondern kann die einfach so verwenden ?
2)
Wo kann ich das nachlesen ? (Link?)
3)
Soll man reservierte Worte wie z.B: SELECT groß schreiben ?
Was empfehlt ihr ?
mfg
Bh
================================================== =========
SHOW databases;
USE dbAtoms;
DELIMITER $$
DROP PROCEDURE IF EXISTS insert_atom_n $$
CREATE PROCEDURE insert_atom_n (p_n integer)
BEGIN
DECLARE cnt INT DEFAULT 0;
WHILE cnt < p_n DO
INSERT INTO Atoms
SELECT DISTINCT(a1.atom+a2.atom)
FROM Atoms a1
INNER JOIN Atoms a2 ON a1.atom != a2.atom
WHERE NOT EXISTS (SELECT atom FROM Atoms a3 WHERE a3.atom = (a1.atom + a2.atom));
SET cnt = cnt + 1;
END WHILE;
END $$
DELIMITER ;
DELETE FROM Atoms WHERE Atom>0;
INSERT INTO Atoms(atom) VALUES (3);
INSERT INTO Atoms(atom) VALUES (5);
call insert_atom_n (5);
SELECT * FROM Atoms;
================================================== =========
1)
Das Programm unten funktioniert ohne Problem.
Trotzdem habe ich ein paar Fragen dazu:
Mit
DECLARE cnt INT DEFAULT 0;
muß ich eine Variable deklarieren. Soweit ok.
Aber warum muß ich unten im Programm _nicht_ die Variablen
a1, a2, a3
deklarieren, sondern kann die einfach so verwenden ?
2)
Wo kann ich das nachlesen ? (Link?)
3)
Soll man reservierte Worte wie z.B: SELECT groß schreiben ?
Was empfehlt ihr ?
mfg
Bh
================================================== =========
SHOW databases;
USE dbAtoms;
DELIMITER $$
DROP PROCEDURE IF EXISTS insert_atom_n $$
CREATE PROCEDURE insert_atom_n (p_n integer)
BEGIN
DECLARE cnt INT DEFAULT 0;
WHILE cnt < p_n DO
INSERT INTO Atoms
SELECT DISTINCT(a1.atom+a2.atom)
FROM Atoms a1
INNER JOIN Atoms a2 ON a1.atom != a2.atom
WHERE NOT EXISTS (SELECT atom FROM Atoms a3 WHERE a3.atom = (a1.atom + a2.atom));
SET cnt = cnt + 1;
END WHILE;
END $$
DELIMITER ;
DELETE FROM Atoms WHERE Atom>0;
INSERT INTO Atoms(atom) VALUES (3);
INSERT INTO Atoms(atom) VALUES (5);
call insert_atom_n (5);
SELECT * FROM Atoms;
================================================== =========
Comment