这是我需要的一个例子,不同的值: 我已经在数据库中创建了表1。 表1:人 列:PK-> ID,名称,喜欢的颜色,喜欢的运动等。 此表已在数据库中并填充了值。
现在我想创建第二个表,表2中有一个来自我的表1的收藏夹运动列的主键,还有一个列用于描述。 例如: 表2:体育 专栏:Pk->喜欢的运动,描述
我想确保我只是正确创建这张桌子,所以我不会弄乱任何东西。这是正确的语法吗? (我会在创建表格后单独填写数据。)
CREATE TABLE Sports( Favorite_Sport Varcher(25), 描述Varcher(100), PRIMARY KEY(Favorite_Sport), 外键(Favorite_Sport)参考人员; )
谢谢!
答案 0 :(得分:0)
可能有几种方法可以做到这一点,但我想我会选择
CREATE TABLE Sports
(SPORT Varchar2(25)
CONSTRAINT PK_SPORTS
PRIMARY KEY
USING INDEX,
Description Varchar2(100));
(我将SPORTS桌上主键列的名称改为SPORT)。
您真的不想要也不能拥有SPORTS.SPORT参考PERSON.FAVORITE_SPORT,因为FAVORITE_SPORT不是PERSON上的主要或唯一密钥。相反,您希望外键关系反过来,PERSON.FAVORITE_SPORT引用SPORTS.SPORT:
ALTER TABLE PERSON
ADD CONSTRAINT PERSON_FK1
FOREIGN KEY (FAVORITE_SPORT) REFERENCES SPORTS(SPORT);
祝你好运。