sql 中外键错误

[复制链接]
查看11 | 回复3 | 2013-1-1 14:18:19 | 显示全部楼层 |阅读模式
外键约束,只能创建在 主键上面,或者有 唯一约束的列上面.面积即不是 主键.又不是 唯一,恐怕没法在这个列上面, 创建 外键约束了.如果只是希望owner 表里面的面积, 必须是 houses 表里面有的. 如果是 sql server可以通过 创建一个 函数, 再加一个 check 约束来处理 函数如下: CREATE FUNCTIONisExistsData(@DataINT) RETURNS INTASBEGINDECLARE @resultINT;
SELECT@result = COUNT(*) FROM hous...
回复

使用道具 举报

千问 | 2013-1-1 14:18:19 | 显示全部楼层
要想在owner表中把“面积”作为外键使用,那么在houses表中“面积”必须是主键或者是具有唯一约束。把houses表的“面积”字段写成: 面积 int unique,另外建议把中文名字都换成字母名字。在个别地方不识别中文会带来错误的。...
回复

使用道具 举报

千问 | 2013-1-1 14:18:19 | 显示全部楼层
建owner表时,面积和外键的定义分开写试试:create table owner(业主编号 char(4) primary key, 姓名 char(12), 性别 char(2) check (性别 in ('男','女')), 电话 char(12), 门牌号 char(6), 面积 int , 身份证 char(18)...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行