满意答案

qq575137887

2014.06.09

采纳率:55%    等级:10

已帮助:1164人

外码必须是另一个关系的主码, 或者 有唯一约束的列。

否则创建将要失败!

-- 创建测试主表. 无主键.

CREATE TABLE test_main2 (

id INT NOT NULL,

value VARCHAR(10)

);

-- 创建测试子表.

CREATE TABLE test_sub2 (

id INT NOT NULL,

main_id INT,

value VARCHAR(10),

PRIMARY KEY(id)

);

-- 插入测试主表数据.

INSERT INTO test_main2(id, value) VALUES (1, 'ONE');

INSERT INTO test_main2(id, value) VALUES (2, 'TWO');

-- 插入测试子表数据.

INSERT INTO test_sub2(id, main_id, value) VALUES (1, 1, 'ONEONE');

INSERT INTO test_sub2(id, main_id, value) VALUES (2, 2, 'TWOTWO');

SQL> ALTER TABLE test_sub2

2 ADD CONSTRAINT main_id_cons2

3 FOREIGN KEY (main_id)

4 REFERENCES test_main2(id);

REFERENCES test_main2(id)

*

第 4 行出现错误:

ORA-02270: 此列列表的唯一或主键不匹配

默认情况下,无法创建外键

需要创建 unique 约束

SQL> ALTER TABLE test_main2

2 ADD CONSTRAINTS t_unique_id2

3 UNIQUE (id);

表已更改。

unique 约束创建完毕后,外键创建成功。

SQL> ALTER TABLE test_sub2

2 ADD CONSTRAINT main_id_cons2

3 FOREIGN KEY (main_id)

4 REFERENCES test_main2(id);

表已更改。

00分享举报

mysql创建表里主码和外码_外码必须是另一个关系的主码吗?主键主码 外键外码是同一个东西吗?...相关推荐

  1. mysql创建表里主码和外码_SQL语言创建表时候怎么定义主码和外码

    展开全部 SQL语言62616964757a686964616fe58685e5aeb931333433623064创建表时候用Primary Key(属性名)定义主码,用Foreign Key(属性 ...

  2. mysql创建数据库没有默认值报错_详解Mysql数据库date, datetime类型设置0000-00-00默认值(default)报错问题...

    现象:MySQL5.7版本之后,date, datetime类型设置默认值"0000-00-00",出现异常:Invalid default value for 'time' 原因 ...

  3. mysql查询第11到20条数据_数据库查询语句怎样查询一个表中的第15到第20条数据...

    展开全部 用row_number来查询. 具体方法如下:62616964757a686964616fe4b893e5b19e31333337613830 以sqlserver2008R2为例. 1.创 ...

  4. mysql创建用户表的sql语句,mysql创建表的sql语句

    mysql 动态sql语句,如何用一款小工具大大加速MySQL SQL语句优化(附源,mysql分页查询sql语句,mysql创建表的sql语句 mysql建表语句_计算机软件及应用_IT/计算机_专 ...

  5. mysql 主码和外码_sql如何用sql语句对一个已经编辑好的表在设置主码和外码?Atlassian Confluence安装以及咋更改数据库...

    在上一篇文章中,小编为您详细介绍了关于<如何更改CAD尺寸标注的单位?丽台Q600 优化驱动 装了这个卡>相关知识.本篇中小编将再为您讲解标题sql如何用sql语句对一个已经编辑好的表在设 ...

  6. mysql主码和外码能一样吗_主码、候选码、外部码之间的联系与区别

    展开全部 主码包含候选码和码,候选码包含码. 1.含义不同:若关系中的某一属性组的值能唯一地标识一个元e68a84e8a2ad3231313335323631343130323136353331333 ...

  7. mysql外码是什么意思_数据库中的外键是什么意思?

    展开全部 外键(FK)是用于建立和加强两个表数据之间的链接的一列或多列.通过32313133353236313431303231363533e4b893e5b19e31333433633436将保存表 ...

  8. mysql 创建外键实例_mysql 外键创建实例

    SQL FOREIGN KEY 外键实例教程 外国的SQL关键的制约因素 外键在一个表点,主键在另一就座. 让我们说明了外国钥匙与一个例子.看看以下两个表格: 在"人"表: Las ...

  9. 2019-7-27 [MySQL] DQL 简单查询[别名/去重/运算] 条件查询 排序查询 聚合查询 分组查询 导出与导入 多表操作[一对多/多对多][创外键 创联合主键 约束 添加 删除 测试]

    文章目录 5 SQL语句(DQL) 5.1DQL准备工作和语法 5.1.1准备工作 5.1.2 DQL语法: 5.2 简单查询 5.2.1 查询所有的商品 5.2.2 查询商品名和商品价格. 5.2. ...

最新文章

  1. 数据仓库与数据集市建模
  2. jQuery一些常用特效方法使用实例
  3. NUMA导致的MySQL服务器SWAP问题分析
  4. 年后来广州第一天,写篇水文
  5. 一条一条来,MySQL变量、流程控制与游标,完整详细可收藏
  6. Maven的学习资料收集--(九) 构建SSH项目以及专栏maven
  7. java课设电子门禁_Java 并发专题 : CyclicBarrier 打造一个安全的门禁系统
  8. IE10-浏览器实现placeholder效果
  9. 实现多楼层,每个楼层多房间,上下拖动切换楼层,左右拖动查看其他房间
  10. mysql为什么尽量少星号,mysql – select中是否存在星号排除其他列?
  11. error Code:410 Error Message:appid and openid not match 威富通技术支持,兴业银行微信支付接入支持
  12. 基于深度学习的CNN边缘检测RCF--Richer Convolutional Features for Edge Detection
  13. 怎样使用ADO.NET连接数据库
  14. 课程实训-校园导游系统
  15. html换行不出现横线,wps为什么在换行空格下划线不显示
  16. 10个最佳PHP URL缩短器脚本
  17. Linux命令手动清除缓存
  18. linux 文件末尾追加内容
  19. javascript百炼成仙 第一章 掌握JavaScript基础 1.9 循环遍历的奥妙
  20. 刚刚!腾讯官宣移动开发人才这样选

热门文章

  1. win8.1 update1使用初体验
  2. 基于MATLAB的数字图像处理的设计与实现 转
  3. 中国AI觉醒 阿里王坚:云智能将成为大趋势
  4. 干货!结构化知识的统一建模和多任务学习
  5. C语言石头剪刀布游戏课设
  6. 如何选择垃圾收集器?
  7. 学习java框架-J2EE体系-Spring-IOC-AOP-Bean-事务-
  8. Xrm.Page.data.entity Properties and Methods
  9. PSnbsp;07替换颜色
  10. win7java浏览器崩溃_浏览器崩溃怎么办,教你win7系统浏览器崩溃的应对办法