打开我的navicat,然后找到我的teacher表,选中它,然后点击菜单栏上的‘design table'
在d出的对话框中找到“Foreign Keys”,然后单机。
然后会出现一个设置外键的界面,一共有七列。简单介绍一下这几列的意思。‘name’:可以不填,你一会保存成功系统会自动生成。FieldName’:就是你要把哪个键设置为外键。这里选择‘dept’,‘Reference DadaBase’:外键关联的数据库。‘Reference Table‘ :关联的表 这里是dept表‘Forgin filed Names’:关联的的字段,这里是code‘ondelete’:就是删除的时候选择的动作。这里我的选择是setNull,意思就是当关联的表删除以后,teacher》dept字段会设置为null.
设置完成后点击‘save’保存退出,也可以点击‘add Foreign Key’再添加一个外键。
打开我的navicat,然后找到我的teacher表,选中它,然后点击菜单栏上的‘design table’。如下图:
在d出的对话框中找到“Foreign Keys”,然后单机。如下图:
然后会出现一个设置外键的界面,一共有七列。简单介绍一下这几列的意思。‘name’:可以不填,你一会保存成功系统会自动生成。FieldName’:就是你要把哪个键设置为外键。这里选择‘dept’,‘Reference DadaBase’:外键关联的数据库。‘Reference Table‘ :关联的表 这里是dept表‘Forgin filed Names’:关联的的字段,这里是code‘ondelete’:就是删除的时候选择的动作。这里我的选择是setNull,意思就是当关联的表删除以后,teacher》dept字段会设置为null。如图
设置完成后点击‘save’保存退出,也可以点击‘add Foreign Key’再添加一个外键。k如图:
1>-- 创建测试主表. ID 是主键.2>CREATE TABLE test_main (
3> id INT,
4> value VARCHAR(10),
5> PRIMARY KEY(id)
6>)
7>go
-- 建表时设置外键
1>CREATE TABLE test_sub (
2> id INT,
3> main_id INT,
4> value VARCHAR(10),
5> PRIMARY KEY(id),
6> FOREIGN KEY (main_id) REFERENCES test_main
7>)
8>go
1)主键是什么,主键在数据表中是唯一的标示,主键在一个表中是不允许重复的;2)外键是什么,外键是主键表的一个对应关系表的连接标示;
在建立外键前你要确定,外键表是否已经建立;
从你的sql语句中可以看出你的错误:不说你关联表是不是存在;
先看你主键建立:gid int not null primary key,
你在这里已经把gid这个属性定义为主键了,
在下面foreign key (gid) references goods (gid),gid字段设置为外键就明显的有语法错误;
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)