-- 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);
-- 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 ;
INSERT INTO tabelle1 SET name='Max'; INSERT INTO tabelle1 SET name='Fritz'; INSERT INTO tabelle1 SET name='Erwin'; INSERT INTO tabelle1 SET name='Ernst';
-- 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;
-- 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;
| 25.04.2022