Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
Delphi 10 Seattle Enterprise
|
AW: FB: Kopie eines Datensatzes in Tabelle mit unbekannter Struktur erzeugen
11. Dez 2012, 16:52
@Sir Rufo
Das funktioniert nicht, wenn ein Feld sowohl mit FK verknüpft ist und gleichzeitig Teil eines PK ist.
Ok, dann muss ich aber mal mit meinem MySQL Server schimpfen ... dann ist der wohl kaputt, denn der macht das genau so.
SQL Fiddle DEMO
Code:
CREATE TABLE `tab0` (
`id` int(11) unsigned NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
CREATE TABLE `tab1` (
`id` int(11) unsigned NOT NULL,
`Wert` varchar(20) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
CONSTRAINT `fk_tab1_tab0` FOREIGN KEY (`id`) REFERENCES `tab0` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `tab2` (
`id` int(11) unsigned NOT NULL,
`Zusatzwert` varchar(20) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
CONSTRAINT `fk_tab2_tab1` FOREIGN KEY (`id`) REFERENCES `tab1` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO tab0 ( id ) VALUES (1),(2),(3),(5);
INSERT INTO tab1 ( id, wert ) VALUES (1,'bla'),(2,'foo'),(5,'foo');
INSERT INTO tab2 ( id, zusatzwert ) VALUES (2,'zweiundvierzig'),(5,'foobar');
UPDATE
Tab1
SET
ID = 3
WHERE
ID = 5;
DELETE FROM
Tab0
WHERE
ID = 5;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
Geändert von Sir Rufo (11. Dez 2012 um 17:04 Uhr)
|
|
Zitat
|