1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > mysql创建表里主码和外码_外码必须是另一个关系的主码吗?主键主码 外键外码是同一个

mysql创建表里主码和外码_外码必须是另一个关系的主码吗?主键主码 外键外码是同一个

时间:2020-08-02 19:58:34

相关推荐

mysql创建表里主码和外码_外码必须是另一个关系的主码吗?主键主码 外键外码是同一个

满意答案

qq575137887

.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创建表里主码和外码_外码必须是另一个关系的主码吗?主键主码外键外码是同一个东西吗?...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。