<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Information Centre &#187; DB</title>
	<atom:link href="http://my.center-of.info/category/db/feed/" rel="self" type="application/rss+xml" />
	<link>http://my.center-of.info</link>
	<description>“Wenn etwas schon da war, wie kann man es dann patentieren?” D.E.Knuth, 2002</description>
	<lastBuildDate>Mon, 28 Sep 2009 23:04:39 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>SQL: Constraints hinzufügen</title>
		<link>http://my.center-of.info/2009/05/18/sql-constraints-hinzufuegen/</link>
		<comments>http://my.center-of.info/2009/05/18/sql-constraints-hinzufuegen/#comments</comments>
		<pubDate>Mon, 18 May 2009 08:38:18 +0000</pubDate>
		<dc:creator>Haf</dc:creator>
				<category><![CDATA[DB]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://my.center-of.info/?p=124</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<p>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).<br />
Versucht man es doch (mittels TRUNCATE [1]) kriegt man eine Fehlermeldung.<br />
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.</p>
<pre class="brush: sql">
ALTER TABLE TableName DROP CONSTRAINT FK_ConstraintName
</pre>
<p>Durch das Löschen aller Constraints der betroffenen Tabelle kann diese dann mit TRUNCATE geleert werden.<br />
Zum Hinzufügen der Constraints:</p>
<pre class="brush: sql">
ALTER TABLE TableName WITH CHECK ADD CONSTRAINT FK_ConstraintsName
	FOREIGN KEY (columnName) REFERENCES TableNameReference (id)
</pre>
<p>Constraints können nur dann hinzugefügt werden, wenn sie nicht vorhanden sind. Mit einer Prüfung sieht das dann so aus:</p>
<pre class="brush: sql">
IF NOT EXISTS (SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
                         WHERE TABLE_NAME=&#039;TableName&#039;
			     AND CONSTRAINT_NAME=&#039;FK_ConstraintName&#039;
			     AND CONSTRAINT_TYPE=&#039;FOREIGN KEY&#039;)
   /* SQL Statement to add constraint, see above listing */
</pre>
<p>Links:<br />
[1] SQL Drop (<a href="http://www.w3schools.com/SQL/sql_drop.asp" target="_blank">TRUNCATE</a>)<br />
[2] SQL <a href="http://www.w3schools.com/Sql/sql_delete.asp" target="_blank">DELETE</a><br />
[3] SQL <a href="http://www.w3schools.com/SQL/sql_foreignkey.asp" target="_blank">FK Constraints</a></p>
]]></content:encoded>
			<wfw:commentRss>http://my.center-of.info/2009/05/18/sql-constraints-hinzufuegen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
