约束 约束很麻烦,我刚在做联系,在employees表中插入一条数据但它跳出来说违反主键约束,其中的employee_id已经有了,然后我在前面加了个1,运行后,它又说违反外键约束,想这种情况,我该怎么办? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是依赖父表的外键吧?在employees表中插入数据的主键是其父表的外键 这要看employees表结构的定义。重新看了一下问题,应该是employee_id可能依赖于其它表,那它只能是employees表的外键。这个确实比较奇怪。最好楼主能帖出该表的定义。没有父表的外键一说。 你的employee表的employee_id字段不但要是唯一的,而且要在你的是依赖于别的别的主键。你可以这样查看下主表 select * from user_constraints r where r.table_name=upper('receivables') and r.constraint_type='F' 看一下你employees表的employee_id在那个表中以外键形式存在~ 来了,具体点讲insert into employeesvalues(114,'ben','raphealy','drapheal','515.127.4561',to_date('1月 3,1999','mon dd,rr'),'ac_account',11000,null,100,30)/违反唯一约束条件<HR.EMP_EMP_ID_PK>将114改为1114(因为是练习,改下无所谓)insert into employeesvalues(1114,'ben','raphealy','drapheal','515.127.4561',to_date('1月 3,1999','mon dd,rr'),'ac_account',11000,null,100,30)/违反完整性约束条件<HR.EMP_JOB_FK>-未找到父项关键字情况就是这样,我没法练了。 select * from user_constraints r where r.table_name=upper('employees');用这个语句查询下,把结果贴出来看下。。 猜测你的employees插入的记录的职位字段在你的职位表了找不到对应的职位。把employees的职位字段的值从职位表的去找个,就可以了。。 你连表里有什么字段信息都不了解,约束当然麻烦了,如果你不想了解的话,重新创建自己的表啊,用CRATE TABLE ... AS SELECT * FROM EMP....很快的啊,这样就不要管表里的约束啊,索引什么的了 目标表employees的job字段是有外键的,所以你无法插入。有两种方法解决:1。修改你insert的job列的值,使其符合外键约束2。修改表employees的表结构,去除外键,或者是自己新建张表 all_constraints user_constraints dba_constraints从上面的表里面可以找见约束。例如: 1 SELECT constraint_name,constraint_type FROM user_constraints 2* WHERE table_name = 'AAAA' and owner = 'HR' 发帖注意事项http://topic.csdn.net/u/20091130/21/fb718680-98ff-4afb-98d8-cff2f8293ed5.html?24281 Oracle Forms Builder 求助:ORACLE如何从WINDOWS迁移到AIX上? ORA-01017 ORA-01031 如何自定义唯一性约束? 清表产生错误 请大家帮我解释一下这二个SQL语句的区别 安装Oracle 9i出现的问题,ORA-12571:TNS包写入程序失败 Job的两个参数Nextdate, interval的真正涵义 怎么样创建数据库的临时表? 请教高手Develop Suite的问题,马上给分!! oracle触发器:我想在插入一条数据的时候,对其中的一个字段进行默认赋值 求助,如何用sql将表中的一个字段的多个值分成,多个字段单个值
这要看employees表结构的定义。重新看了一下问题,应该是employee_id可能依赖于其它表,那它只能是employees表的外键。这个确实比较奇怪。
最好楼主能帖出该表的定义。
没有父表的外键一说。
看一下你employees表的employee_id在那个表中以外键形式存在~
insert into employees
values(114,'ben','raphealy','drapheal','515.127.4561',
to_date('1月 3,1999','mon dd,rr'),
'ac_account',11000,null,100,30)
/
违反唯一约束条件<HR.EMP_EMP_ID_PK>
将114改为1114(因为是练习,改下无所谓)
insert into employees
values(1114,'ben','raphealy','drapheal','515.127.4561',
to_date('1月 3,1999','mon dd,rr'),
'ac_account',11000,null,100,30)
/
违反完整性约束条件<HR.EMP_JOB_FK>-未找到父项关键字
情况就是这样,我没法练了。
用这个语句查询下,把结果贴出来看下。。
猜测你的employees插入的记录的职位字段在你的职位表了找不到对应的职位。
把employees的职位字段的值从职位表的去找个,就可以了。。
用CRATE TABLE ... AS SELECT * FROM EMP....很快的啊,这样就不要管表里的约束啊,索引什么的了
有两种方法解决:
1。修改你insert的job列的值,使其符合外键约束
2。修改表employees的表结构,去除外键,或者是自己新建张表
从上面的表里面可以找见约束。例如:
1 SELECT constraint_name,constraint_type FROM user_constraints
2* WHERE table_name = 'AAAA' and owner = 'HR'
http://topic.csdn.net/u/20091130/21/fb718680-98ff-4afb-98d8-cff2f8293ed5.html?24281