Thread
-
how can i change my table/column constraint
Muhammad Rusydi <rusydi@cbn.net.id> — 2001-05-05T06:49:31Z
Hi, if i have created this tables: create table lab ( kd_lab varchar(4) check (kd_lab ~'[0][1-4][0-9][0-9]'), name varchar(10), primary key (kd_lab)); create table tb2 ( kd_lab varchar(4) references lab (kd_lab), tb2 varchar(10), primary key (kd_lab)); the questions is if i want to change the check constraint to [0][1-5][0-9][0-9] how can i do this? if i create another table named lab2 with same fields and then i move all tuples from lab to lab2, then drop table lab and rename lab2 to lab, is the references constraint in table tb2 still valid? would you show me how to do this? TIA Didi
-
Re: how can i change my table/column constraint
Anand Raman <araman@india-today.com> — 2001-05-05T07:18:59Z
basically copy the table to some other table.. Drop the old table.. recreate it with the constraints changed Repopulate the table.. Hope this helps Anand On Sat, May 05, 2001 at 01:49:31PM +0700, Muhammad Rusydi wrote: >Hi, >if i have created this tables: >create table lab ( >kd_lab varchar(4) check (kd_lab ~'[0][1-4][0-9][0-9]'), >name varchar(10), >primary key (kd_lab)); > >create table tb2 ( >kd_lab varchar(4) references lab (kd_lab), >tb2 varchar(10), >primary key (kd_lab)); > >the questions is if i want to change the check constraint to >[0][1-5][0-9][0-9] >how can i do this? >if i create another table named lab2 with same fields and then i move >all tuples from lab to lab2, then drop table lab and rename lab2 to >lab, is the references constraint in table tb2 still valid? >would you show me how to do this? > >TIA >Didi > > >---------------------------(end of broadcast)--------------------------- >TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
-
Re: how can i change my table/column constraint
Muhammad Rusydi <rusydi@cbn.net.id> — 2001-05-05T08:18:37Z
Hi Anand, > basically copy the table to some other table.. > Drop the old table.. > recreate it with the constraints changed > Repopulate the table.. would you show me with my two tables? is it like this? > >if i create another table named lab2 with same fields and then i move > >all tuples from lab to lab2, then drop table lab and rename lab2 to > >lab, is the references constraint in table tb2 still valid? > >would you show me how to do this? i create lab2 with the same constraint before i delete lab? isn't it? after lab2 created i copy all tuples from lab to lab2... is it right? what do you repopulate? sorry...i'm still not getting on to it TIA Didi
-
Re: how can i change my table/column constraint
Eric G. Miller <egm2@jps.net> — 2001-05-05T11:17:21Z
On Sat, May 05, 2001 at 01:49:31PM +0700, Muhammad Rusydi wrote: > Hi, > if i have created this tables: > create table lab ( > kd_lab varchar(4) check (kd_lab ~'[0][1-4][0-9][0-9]'), > name varchar(10), > primary key (kd_lab)); > > create table tb2 ( > kd_lab varchar(4) references lab (kd_lab), > tb2 varchar(10), > primary key (kd_lab)); > > the questions is if i want to change the check constraint to > [0][1-5][0-9][0-9] > how can i do this? > if i create another table named lab2 with same fields and then i move > all tuples from lab to lab2, then drop table lab and rename lab2 to > lab, is the references constraint in table tb2 still valid? > would you show me how to do this? On Sat, May 05, 2001 at 03:18:37PM +0700, Muhammad Rusydi wrote: > Hi Anand, > > > basically copy the table to some other table.. > > Drop the old table.. > > recreate it with the constraints changed > > Repopulate the table.. > would you show me with my two tables? > is it like this? > > >if i create another table named lab2 with same fields and then i move > > >all tuples from lab to lab2, then drop table lab and rename lab2 to > > >lab, is the references constraint in table tb2 still valid? > > >would you show me how to do this? > i create lab2 with the same constraint before i delete lab? > isn't it? > after lab2 created i copy all tuples from lab to lab2... > is it right? > what do you repopulate? > sorry...i'm still not getting on to it > TIA > Didi -- Create new table CREATE TABLE lab_new ( kd_lab VARCHAR(4) CHECK (kd_lab ~'[0][1-5][0-9][0-9]'), name VARCHAR(10), PRIMARY KEY (kd_lab)); -- Populate with existing data INSERT INTO lab_new (kd_lab, name, key) SELECT kd_lab, name, key FROM lab; -- Stop if there was an error! -- Create second new table without FK constraint CREATE TABLE tb2_new ( kd_lab VARCHAR(4), tb2 VARCHAR(10), PRIMARY KEY (kd_lab)); -- Populate with existing data INSERT INTO tb2_new (kd_lab, tb2, key) SELECT kd_lab, tb2, key FROM tb2; -- Stop if there was an error! -- Don't drop unless you're sure the data got copied okay DROP TABLE tb2; DROP TABLE lab; -- Rename tables ALTER TABLE lab_new RENAME TO lab; ALTER TABLE tb2_new RENAME TO tb2; -- Re add foreign key constraint (optionally named) ALTER TABLE tb2 ADD [CONSTRAINT foo] FOREIGN KEY (kd_lab) REFERENCES lab (kd_lab); -- Eric G. Miller <egm2@jps.net>