ITPUB??ì3
ITPUB论坛 » 内存数据库 » 删除有外键约束的列

标题: 删除有外键约束的列
离线 zixuniaoyou
おおきい



来自 北京ペキン
精华贴数 0
个人空间 0
技术积分 622 (3015)
社区积分 26 (6574)
注册日期 2007-1-12
论坛徽章:3
授权会员     
      

发表于 2008-5-16 19:37 
删除有外键约束的列

timesten数据库里 我想删除有外键约束的列怎么办呢??

CREATE table_a (
a varchar(15),
b binary(1),
PRIMARY KEY (a),
FOREIGN KEY (b) REFERENCES table_c (K_b)
);

我如何drop掉b 呢??
按照document 里说的:应该是:
ALTER TABLE [Owner.]TableName
DROP CONSTRAINT ForeignKeyName

ALTER TABLE table_a  DROP  CONSTRAINT  b ;

但是删除不掉啊。。谁来帮帮我。
还有增加外健约束的列如何增加呢??


__________________
智者无惑
只看该作者    顶部
离线 zixuniaoyou
おおきい



来自 北京ペキン
精华贴数 0
个人空间 0
技术积分 622 (3015)
社区积分 26 (6574)
注册日期 2007-1-12
论坛徽章:3
授权会员     
      

发表于 2008-5-27 17:15 
。。。哎。 看来没人知道。   看了看oracle 的帮助文档,应该是外键约束名。   但是 timesten也没有提供相应的视图。。


__________________
智者无惑
只看该作者    顶部
离线 tom_111
++天道酬勤++


精华贴数 1
个人空间 0
技术积分 1861 (857)
社区积分 41 (5272)
注册日期 2007-8-24
论坛徽章:5
现任管理团队成员授权会员2008北京奥运纪念徽章:帆船2008年新春纪念徽章生肖徽章2007版:鼠 
      

发表于 2008-5-28 13:20 
altibase内存数据库可以删除外键约束,这都是标准的SQL。
测试场景:表t_usr和t_dept进行关联,其中在主表t_usr上创建外键,此外键与子表t_dept表的列id关联。
操作步骤:
---------创建表-------------
iSQL> create table t_usr(id integer,deptid integer,name char(30));
Create success.
iSQL> create table t_dept(id integer,name varchar(40));
Create success.
---------创建唯一索引-------------
iSQL> create unique index inx_deptid on t_usr(deptid);
Create success.
iSQL> create unique index inx_id on t_dept(id);
Create success.
---------创建主表FK-------------
iSQL> alter table t_usr add constraint fk_deptid foreign key(deptid) references t_dept(id);
Alter success.
---------向子表插入数据------------
iSQL> insert into t_dept values(1,'dd');
1 row inserted.
iSQL> insert into t_dept values(2,'ee');
1 row inserted.

---------向主表插入数据------------
iSQL> insert into t_usr values(1,2,'bbb');
1 row inserted.

---------验证主表fk是否创建成功------------
iSQL> insert into t_usr values(2,3,'vvv');
[ERR-31077 : The parent record is not found for FK_DEPTID.]

iSQL> insert into t_usr values(2,1,'fff');
1 row inserted.
---------删除主表FK-------------
iSQL> alter table t_usr drop CONSTRAINt fk_deptid;
Alter success.

---------验证主表fk是否删除成功---------
iSQL> insert into t_usr values(3,4,'ggg');
1 row inserted.


__________________
=========DBA格言================
从理论中来,到实践中去,再回到理论中。
不断的重复,不断的循环!!!
做人做事一定要厚道!!!
做DBA更应该厚道!!!
江湖越走越老,胆子越走越小!!!
***【技术讲究实践和理论】【玉雕讲究打磨和上色】***
***【做人讲究人品和魅力】【做事讲究方法和技巧】***
===============================
Oracle技术交流联盟:(MSN群)mgroup10396@hotmail.com
ALTIBASE技术交流联盟:(MSN群)group199500@xiaoi.com
ITPUB内存数据库版块:http://www.itpub.net/forum162.html
只看该作者    顶部
 
    

相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问