关于主键设置的问题 在Oracle中外键是约束的一种。ALTER TABLE 从表 ADD (CONSTRAINT FK_TEST FOREIGN KEY(id) REFERENCES 主表(id) ON DELETE CASCADE); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 SQL> DESC A 名称 是否为空? 类型 ----------------------------------------- -------- ---------------------------- ID VARCHAR2(5)SQL> DESC B 名称 是否为空? 类型 ----------------------------------------- -------- ---------------------------- ID VARCHAR2(5)SQL> TRUNCATE TABLE B;表已截掉。SQL> ALTER TABLE B ADD (CONSTRAINT FK_TEST FOREIGN KEY(ID) REFERENCES A(ID) ON DELETE CASCADE);ALTER TABLE B ADD (CONSTRAINT FK_TEST FOREIGN KEY(ID) REFERENCES A(ID) ON DELETE CASCADE) *ERROR 位于第 1 行:ORA-02270: 此列列表的唯一或主键不匹配SQL> ALTER TABLE A ADD PRIMARY KEY(ID);表已更改。SQL> ALTER TABLE B ADD (CONSTRAINT FK_TEST FOREIGN KEY(ID) REFERENCES A(ID) ON DELETE CASCADE);表已更改。SQL> SELECT *FROM A;ID-----123AC_BDACBDA_BDSQL> INSERT INTO B VALUES('1');INSERT INTO B VALUES('1')*ERROR 位于第 1 行:ORA-02291: 违反完整约束条件 (TEST.FK_TEST) - 未找到父项关键字SQL> INSERT INTO B VALUES('123');已创建 1 行。SQL> INSERT INTO B VALUES('123');已创建 1 行。SQL> COMMIT;提交完成。SQL> SELECT *FROM B;ID-----123123可以看出,设置外键,要求主表中的被引用字段必须是唯一的,而从表不受限制。 我现在有一个Orcal 10g 有一个 *.dmp 请问如何把*.dmp 弄到Orcal 10g里 drop user XXX cascade; 一句SQL求解 关于oracle inser/update 的问题 怎么从日期数据里取出小时数的合计(去掉交叉的时间、断开的时间) 求助group by a having count()问题 有点难度的pl/sql 求oracle關於某系統的數據庫源代碼一份! 简单问题! 请问oracle8i里创建pl/sql的存储过程在什么环境下输入 这种语语句怎么关联 导师给的题目,大家有没有好的测试方案,或是相关的资源,欢迎指导
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
ID VARCHAR2(5)SQL> DESC B
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
ID VARCHAR2(5)SQL> TRUNCATE TABLE B;表已截掉。SQL> ALTER TABLE B ADD (CONSTRAINT FK_TEST FOREIGN KEY(ID) REFERENCES A(ID) ON DELETE CASCADE);
ALTER TABLE B ADD (CONSTRAINT FK_TEST FOREIGN KEY(ID) REFERENCES A(ID) ON DELETE CASCADE)
*
ERROR 位于第 1 行:
ORA-02270: 此列列表的唯一或主键不匹配
SQL> ALTER TABLE A ADD PRIMARY KEY(ID);表已更改。SQL> ALTER TABLE B ADD (CONSTRAINT FK_TEST FOREIGN KEY(ID) REFERENCES A(ID) ON DELETE CASCADE);表已更改。SQL> SELECT *FROM A;ID
-----
123
AC_BD
ACBD
A_BDSQL> INSERT INTO B VALUES('1');
INSERT INTO B VALUES('1')
*
ERROR 位于第 1 行:
ORA-02291: 违反完整约束条件 (TEST.FK_TEST) - 未找到父项关键字
SQL> INSERT INTO B VALUES('123');已创建 1 行。SQL> INSERT INTO B VALUES('123');已创建 1 行。SQL> COMMIT;提交完成。SQL> SELECT *FROM B;ID
-----
123
123可以看出,设置外键,要求主表中的被引用字段必须是唯一的,而从表不受限制。