hilfdirselbst.ch
Facebook Twitter gamper-media

Forenindex » Programmierung/Entwicklung » PHP und MySQL » PHP + MySQL

 

« « 1 2 » »  


oesi50  A  S
Beiträge: 2315

30. Jan 2009, 19:36

Beitrag #16 von 16
Beitrag ID: #383433

Bewertung:

(3299 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

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--


Grüße Oesi
Ich weiß, dass ich nicht weiß... (Sokrates)

als Antwort auf: [#383170]

(Dieser Beitrag wurde von oesi50 am 30. Jan 2009, 21:41 geändert)
Top
 
X
« « 1 2 » »  


Forenindex » Programmierung/Entwicklung » PHP und MySQL » PHP + MySQL

X


^