登录  /  注册
首页 > 数据库 > Oracle > 正文

oracle怎么修改主键

青灯夜游
发布: 2022-01-25 17:43:49
原创
19905人浏览过
修改主键的方法:1、利用“alter table 表名 drop constraint 主键名;”语句删除主键;2、使用“alter table 表名 add primary key(字段);”语句添加主键。

oracle怎么修改主键

本教程操作环境:Windows7系统、Oracle 11g版、Dell G3电脑。

主键解释:

       一个表的唯一关键字 比如一个学生表 学号不能重复且唯一 ,学号就是关键字,即为主键。

区别于外键:

       外键就是跟其他表联系的字段 ,还是比如有一张学生表 还有一张选课表,这个时候要修改学生表中的学号 ,选课表里对应的就也得变,这样就需要给选课表加学号作为外键约束,这样当你修改学号时 所有外键关联的就都改了

主键的添加、删除等操作

1.有命名主键

1)有命名主键的添加

①建表时添加主键(yy为主键“ID”的主键名称)

CREATE TABLE table_test(
 
id INT NOT NULL,       --注意:主键必须非空
 
name VARCHAR(20) NOT NULL,
 
address VARCHAR(20),
 
constraint yy PRIMARY KEY(id)
 
);
登录后复制

②建表后添加主键

alter table table_test add constraint yy primary key(id);
登录后复制

公式:alter table 表名 add constraint 主键名 primary key(字段);

2)有命名主键的删除

ALTER TABLE table_test DROP CONSTRAINT yy;
登录后复制

公式:ALTER TABLE 表名DROP CONSTRAINT 主键名;

3)有命名主键的修改

需先删除主键,再进行添加
登录后复制
登录后复制

2.无命名主键

1)无命名主键的创建

①建表时添加主键(主键“ID”的主键名称需要查询出来,下文有方法)

CREATE TABLE table_test(

id INT NOT NULL,       --注意:主键必须非空

name VARCHAR(20) NOT NULL,

address VARCHAR(20),

PRIMARY KEY(id)

);
登录后复制

②建表后添加主键

alter table table_test add primary key (id);
登录后复制

公式:alter table 表名 add primary key(主键字段1,主键字段2...);

2)无命名主键的删除

①先查出来主键名(constraint_name),user_cons_columns表会在文末给出解释

SELECT t.* from user_cons_columns t where t.table_name  = 'TABLE_TEST' and t.position is not null;
登录后复制

公式:SELECT t.* from user_cons_columns t where t.table_name = '表名' and t.position is not null; --表名必须大写,如:TABLE_TEST

②再执行删除的SQL

ALTER TABLE table_test DROP CONSTRAINT SYS_C0056038;
登录后复制

公式:ALTER TABLE 表名 DROP CONSTRAINT 主键名;

3)无命名主键的修改

需先删除主键,再进行添加
登录后复制
登录后复制

推荐教程:《Oracle教程

以上就是oracle怎么修改主键的详细内容,更多请关注php中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
关于CSS思维导图的课件在哪? 课件
凡人来自于2024-04-16 10:10:18
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 //m.sbmmt.com/ All Rights Reserved | php.cn | 湘ICP备2023035733号