vorhanden Ich möchte einen Fremdschlüssel von 1 Tabelle sollte wie so seinFremdschlüssel hinzufügen, wenn
CREATE TABLE IF NOT EXISTS PEs (id INT(20) AUTO_INCREMENT PRIMARY KEY, Name varchar(20), Message varchar(30), CoordsX double(9,6) SIGNED, CoordsY double(9,6) SIGNED, CoordsZ double(9,6) SIGNED, Status smallint(1) DEFAULT 1, world varchar(20))
auf den zweiten Tabellen
CREATE TABLE IF NOT EXISTS`rh_pe`.`attributes` (`toid` INT(20) NOT NULL , `Kommentar` VARCHAR(60) NOT NULL , `Aktion` varchar(10) NOT NULL , `Person1` INT NOT NULL , `Person2` INT ) ENGINE = InnoDB;
der Fremdschlüssel erstellen:
ALTER TABLE `attributes` ADD CONSTRAINT `Const` FOREIGN KEY (`toid`) REFERENCES `pes`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
Ich habe versucht mit
IF NOT EXISTS(ALTER TABLE `attributes` ADD CONSTRAINT `Const` FOREIGN KEY (`toid`) REFERENCES `pes`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT);
und
ALTER TABLE `attributes` ADD CONSTRAINT `Const` FOREIGN KEY IF NOT EXISTS (`toid`) REFERENCES `pes`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
Ich glaube nicht, es gibt einen Weg zu mach das in gewöhnlichem SQL. Sie müssen eine gespeicherte Prozedur verwenden, die 'INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS' abfragt. Siehe http://dev.mysql.com/doc/refman/5.7/en/referential-constraints-table.html – Barmar
Mögliches Duplikat von [MySQL: Einschränkung hinzufügen, falls nicht vorhanden] (http://stackoverflow.com/questions/ 3919226/mysql-add-constraint-wenn-nicht-existiert) –
@MatteoTassinari Okay, in meinem Versuch, bevor ich einen Schreibfehler habe. Vielen Dank. – 12Hannibal12