[GastForen

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Forenindex -- Lesezeichen

1 Lesezeichen für view

MySQL Trigger verwenden
OK. Hier also eine Schnellanleitung wie man Trigger verwenden kann.

Zuerst brauchen wir 2 Tabellen, die verknüpft werden sollen:
Code
--   Tabelle 1 
CREATE TABLE tabelle1(
kundennummer INT(10) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL
);
CREATE INDEX name ON tabelle1 (name);

-- Tabelle 2
CREATE TABLE tabelle2(
kundennummer INT(10) UNSIGNED NOT NULL,
datum VARCHAR(255) NOT NULL
);
CREATE INDEX kundennummer ON tabelle2 (kundennummer);


Jetzt wollen wir in beide Tabellen gleichzeitig Daten einfügen, die über die Kundennummer verknüpft sind.
Dazu wird ein Trigger angelegt:
Code
-- Trigger für INSERT anlegen 
DELIMITER //
CREATE TRIGGER neukunde AFTER INSERT ON tabelle1
FOR EACH ROW
BEGIN
INSERT INTO tabelle2 SET kundennummer=LAST_INSERT_ID(),datum=NOW();
END; //
DELIMITER ;


Jetz können, nach Lust und Laune, Daten in Tabelle 1 eingefügt werden.
Code
INSERT INTO tabelle1 SET name='Max'; 
INSERT INTO tabelle1 SET name='Fritz';
INSERT INTO tabelle1 SET name='Erwin';
INSERT INTO tabelle1 SET name='Ernst';


Damit die Sache noch handlicher wird, legen wir uns noch einen View an:
Code
--  View anlegen 
CREATE VIEW kunden AS
SELECT a.kundennummer AS kundennummer,a.name AS name,b.datum AS datum
FROM tabelle1 AS a,tabelle2 AS b
WHERE a.kundennummer=b.kundennummer;


Nun verwenden wir den View anstatt der Tabellen

Code
--  View wie Tabelle anwenden 
SELECT kundennummer,name,datum
FROM kunden
WHERE name like 'E%'
ORDER BY name;

-- Kontrolle, ob der View ordentlich arbeitet

EXPLAIN SELECT kundennummer,name,datum FROM kunden WHERE name like 'E%' ORDER BY name;


Trigger können auch für UPDATE und DELETE eingesetzt werden.


--Ende der Ganzschnellanleitung--
...
oesi50
30. Jan 2009, 19:36