• 技术文章 >数据库 >Oracle

    oracle怎么修改主键

    青灯夜游青灯夜游2022-01-25 17:43:49原创72

    修改主键的方法:1、利用“ALTER TABLE 表名 DROP CONSTRAINT 主键名;”语句删除主键;2、使用“alter table 表名 add primary key(字段);”语句添加主键。

    本教程操作环境: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中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:oracle 删除主键
    上一篇:oracle存储过程的事务有什么用 下一篇:oracle怎么查询游标

    相关文章推荐

    • 怎样执行oracle存储过程• oracle存储过程的参数类型有哪些• oracle中触发器和存储过程是什么• oracle存储过程中赋值给变量的方法有哪些• oracle分页查询原理是什么• oracle存储过程的事务有什么用

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网