你要建外键的话,references teacher(tid) 参照的表要先存在才行,而且是要teacher表的主键,所以你先建立teacher和paper表就可以了
CREATE DATABASE paper;
use paper;
CREATE TABLE teacher (
tid BIGINT NOT NULL COMMENT '导师编号',
tname VARCHAR(20) NOT NULL COMMENT '导师姓名',
prof VARCHAR(20) NOT NULL COMMENT '职称',
mail VARCHAR(100) NOT NULL COMMENT '导师邮箱',
password VARCHAR(100) NOT NULL COMMENT '导师密码',
student VARCHAR(20) COMMENT '导师的学生',
PRIMARY KEY (tid)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE paper (
pid BIGINT NOT NULL AUTO_INCREMENT COMMENT '论文id',
pname VARCHAR(100) COMMENT '论文题目',
pcontent VARCHAR(1000) COMMENT '论文题目',
state VARCHAR(20) NOT NULL COMMENT '论文状态',
PRIMARY KEY (pid)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE student (
sid BIGINT PRIMARY KEY Not NULL COMMENT '学生学号',
sname VARCHAR(20) NOT NULL COMMENT '学生姓名',
sex VARCHAR(20) NOT NULL COMMENT '学生性别',
age INT NOT NULL COMMENT '学生年龄',
major VARCHAR(100) NOT NULL COMMENT '专业',
mail VARCHAR(100) NOT NULL COMMENT '学生邮箱',
password VARCHAR(100) NOT NULL COMMENT '学生密码',
tid BIGINT COMMENT '导师工号',
pid BIGINT COMMENT '论文编号',
constraint t_fk foreign key(tid) references teacher(tid),
constraint p_fk foreign key(pid) references paper(pid)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
在修改一张表的结构保存时,提示“您对无法重新创建的标进行了更改或者启用了“阻止保存要求重新创建表的更改”选项。”,试了几次一直是这个错误,删除表后重建,然后还是发生了这个错误。原来是当用户在在SQL Server 2008企业管理器中更改表结构时,必须要先删除原来的表,然后重新创建新表,才能完成表的更改,如果强行更改会出现以下提示:不允许保存更改。您所做的更改要求删除并重新创建以下表。您对无法重新创建的标进行了更改或者启用了“阻止保存要求重新创建表的更改”选项。
解决方法:打开SQL 2008 在最上面 工具-〉选项-〉左侧有个 Designers-〉表设计器和数据库设计器 -> 阻止保存要求重新创建表的更改(右侧) 把钩去掉就可以了。
楼主用的是sql server2008吗??
当用户在在SQL Server 2008企业管理器中更改表结构时,必须要先删除原来的表,然后重新创建新表,才能完成表的更改,如果强行更改会出现以下提示:不允许保存更改。您所做的更改要求删除并重新创建以下表。您对无法重新创建的标进行了更改或者启用了“阻止保存要求重新创建表的更改”选项。
如果要去掉此提示,可从“工具”菜单中选择“选项”,在“选项”对话框中,选择Designers,选择“表设计器和数据库设计器”,清除“ 阻止保存要求重新创建表的更改”复选框。
安卓对SQLite表中的主键字段要求比较苛刻,必须使用 _id
算是比较霸道吧。不过我们也没办法。。呵呵
你改改试一试, 我上次也是遇到这样的问题,调了半天都没解决。查API才发现的。希望能帮到你
ACCESS数据库的某张表被打开后,系统是不允许编辑该表与其他表之间所建立的关系的,系统会d出类似下面截图的错误提示,因此,提问中的讲法是错误的。
扩展资料:
数据库的 *** 作指令
(1)数据记录筛选:
sql="selectfrom数据表where字段名=字段值orderby字段名[desc]"
sql="selectfrom数据表where字段名like'%字段值%'orderby字段名[desc]"
sql="selecttop10from数据表where字段名orderby字段名[desc]"
sql="selectfrom数据表where字段名in('值1','值2','值3')"
sql="selectfrom数据表where字段名between值1and值2"
(2)更新数据记录:
sql="update数据表set字段名=字段值where条件表达式"
sql="update数据表set字段1=值1,字段2=值2字段n=值nwhere条件表达式"
(3)删除数据记录:
sql="deletefrom数据表where条件表达式"
sql="deletefrom数据表"(将数据表所有记录删除)
(4)添加数据记录:
sql="insertinto数据表(字段1,字段2,字段3)values(值1,值2,值3)"
sql="insertinto目标数据表selectfrom源数据表"(把源数据表的记录添加到目标数据表)
(5)数据记录统计函数:
AVG(字段名)得出一个表格栏平均值
COUNT(¦字段名)对数据行数的统计或对某一栏有值的数据行数统计
MAX(字段名)取得一个表格栏最大的值
MIN(字段名)取得一个表格栏最小的值
SUM(字段名)把数据栏的值相加
引用以上函数的方法:
sql="selectsum(字段名)as别名from数据表where条件表达式"
setrs=connexcute(sql)
用rs("别名")获取统的计值,其它函数运用同上。
(5)数据表的建立和删除:
CREATETABLE数据表名称(字段1类型1(长度),字段2类型2(长度))
例:CREATETABLEtab01(namevarchar(50),datetimedefaultnow())
DROPTABLE数据表名称(永久性删除一个数据表)
参考资料来源:百度百科-数据库 *** 作
以上就是关于数据库建表问题,一直报1215错误怎么修改啊全部的内容,包括:数据库建表问题,一直报1215错误怎么修改啊、sql server 2008 为什么修改表的时候总是修改不了,需要设置什么吗、为什么数据库中的表不能修改保存等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)