SQL: Constraints hinzufügen

Beim Leeren von Datenbank-Tabellen müssen immer die vorhandenen Constraints beachtet werden. Das Löschen von Tabellen-Zeilen, obwohl andere darauf verweisen, ist nicht erlaubt (referenzielle Integrität). Versucht man es doch (mittels TRUNCATE [1]) kriegt man eine Fehlermeldung. Hier kann man nun entweder DELETE Statements [2] nutzen, was länger dauern kann, oder man verwendet doch TRUNCATE und muss die vorhandenen Constraints löschen.

ALTER TABLE TableName DROP CONSTRAINT FK_ConstraintName

Durch das Löschen aller Constraints der betroffenen Tabelle kann diese dann mit TRUNCATE geleert werden. Zum Hinzufügen der Constraints:

ALTER TABLE TableName WITH CHECK ADD CONSTRAINT FK_ConstraintsName FOREIGN KEY (columnName) REFERENCES TableNameReference (id)

Constraints können nur dann hinzugefügt werden, wenn sie nicht vorhanden sind. Mit einer Prüfung sieht das dann so aus:

IF NOT EXISTS (SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_NAME='TableName' AND CONSTRAINT_NAME='FK_ConstraintName' AND CONSTRAINT_TYPE='FOREIGN KEY') /* SQL Statement to add constraint, see above listing */

Links: [1] SQL Drop (TRUNCATE) [2] SQL DELETE [3] SQL FK Constraints

comment

Comments

arrow_back

Previous

Java JMS MQ Beispiel

Next

Cache method results with Ehcache and Spring
arrow_forward