This is a docs patch to go with my DROP CONSTRAINT patch.
authorBruce Momjian
Wed, 30 May 2001 13:01:08 +0000 (13:01 +0000)
committerBruce Momjian
Wed, 30 May 2001 13:01:08 +0000 (13:01 +0000)
Christopher Kings

doc/src/sgml/ref/alter_table.sgml

index 5649890bf8ff38b6818a1aba8c3dc8a3202bf6c1..87252f74676414f3b1142fe2b094436a88cf2925 100644 (file)
@@ -1,5 +1,5 @@
 
 
@@ -38,6 +38,8 @@ ALTER TABLE table
     RENAME TO newtable
 ALTER TABLE table
     ADD table constraint definition
+ALTER TABLE [ ONLY ] table 
+   DROP CONSTRAINT constraint { RESTRICT | CASCADE }
 ALTER TABLE table
    OWNER TO new owner 
   
@@ -177,6 +179,8 @@ ALTER TABLE table
    The ADD table constraint definition clause 
    adds a new constraint to the table using the same syntax as 
    linkend="SQL-CREATETABLE" endterm="SQL-CREATETABLE-title">. 
+   The DROP CONSTRAINT constraint clause 
+   drops all CHECK constraints on the table (and its children) that match constraint.
    The OWNER clause changes the owner of the table to the user 
    new user.
   
@@ -208,11 +212,31 @@ ALTER TABLE table
 
    
     In the current implementation, only FOREIGN KEY and CHECK constraints can
-    be added to a table.  To create or remove a unique constraint, create 
+    be added to a table.  To create a unique constraint, create 
     a unique index (see 
     endterm="SQL-CREATEINDEX-title">).
    
 
+   
+    Currently only CHECK constraints can be dropped from a table.  The RESTRICT
+    keyword is required, although dependencies are not checked.  The CASCADE
+    option is unsupported.  To remove a PRIMARY or UNIQUE constraint, drop the 
+    relevant index using the  command.
+    To remove FOREIGN KEY constraints you need to recreate
+    and reload the table, using other parameters to the
+    
+    command.
+   
+   
+    For example, to drop all constraints on a table distributors:
+    
+CREATE TABLE temp AS SELECT * FROM distributors;
+DROP TABLE distributors;
+CREATE TABLE distributors AS SELECT * FROM temp;
+DROP TABLE temp;
+    
+   
+
    
     You must own the table in order to change it.
     Changing any  part  of  the schema of a system
@@ -260,6 +284,13 @@ ALTER TABLE distributors ADD CONSTRAINT zipchk CHECK (char_length(zipcode) = 5)
    
   
 
+   
+   To remove a check constraint from a table and all its children:
+   
+ALTER TABLE distributors DROP CONSTRAINT zipchk
+   
+  
+
    
    To add a foreign key constraint to a table:
    
@@ -289,34 +320,6 @@ ALTER TABLE distributors ADD CONSTRAINT distfk FOREIGN KEY (address) REFERENCES
      statement which are not yet directly supported by Postgres:
 
     
-     
-      
-       
-ALTER TABLE table DROP CONSTRAINT constraint { RESTRICT | CASCADE }
-      
-     
-     
-      
-       Removes a table constraint (such as a check constraint,
-       unique constraint, or foreign key constraint). To 
-       remove a unique constraint, drop a unique index.
-       To remove other kinds of constraints you need to recreate
-       and reload the table, using other parameters to the
-       
-       command.
-      
-      
-       For example, to drop any constraints on a table distributors:
-       
-CREATE TABLE temp AS SELECT * FROM distributors;
-DROP TABLE distributors;
-CREATE TABLE distributors AS SELECT * FROM temp;
-DROP TABLE temp;
-       
-      
-     
-    
-