免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 6188 | 回复: 10
打印 上一主题 下一主题

如何让主键 禁止插入值 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-09-02 18:20 |只看该作者 |倒序浏览
CREATE TABLE products (
    id serial  primary key ,
    name varchar(10)
);


INSERT INTO products(id,name) VALUES (3,'c');

这样是能插入的,我是想让 这个id 不能 通过 手工插入,请问  我这句 id serial  primary key ,要怎么更改

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
2 [报告]
发表于 2010-09-02 20:34 |只看该作者
sqlserver设置成id后就自动增长。PG应该没有这个功能吧。

论坛徽章:
1
寅虎
日期:2013-09-29 23:15:15
3 [报告]
发表于 2010-09-02 21:11 |只看该作者
serial只是让字段拥有一个序列发生器,添加数据时,默认值从序列发生器中读取.
好象不能限制.

论坛徽章:
0
4 [报告]
发表于 2010-09-03 11:14 |只看该作者
也 就是 防止 serial 字段 被意外写入值

只能由pgsql 序列发生器自己生成

论坛徽章:
0
5 [报告]
发表于 2010-09-03 13:09 |只看该作者
这个应该限制不了

论坛徽章:
0
6 [报告]
发表于 2010-09-03 17:23 |只看该作者
写触发器限制

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
7 [报告]
发表于 2010-09-04 11:04 |只看该作者
视图

评分

参与人数 1可用积分 +1 收起 理由
renxiao2003 + 1 鼓励一下,周末还来。

查看全部评分

论坛徽章:
0
8 [报告]
发表于 2010-09-06 12:02 |只看该作者
楼上正解。

论坛徽章:
0
9 [报告]
发表于 2010-09-08 14:50 |只看该作者
用视图是不行的,因为postgresql不支持可更新视图
可以用触发器限制。

不过限制手工插入,将影响到备份还原等操作。

论坛徽章:
0
10 [报告]
发表于 2010-09-10 22:39 |只看该作者
你要确信想锁死这个功能,在PG9里可以设定这个列的权限试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP