精华内容
下载资源
问答
  • Oracle给表添加主键、外键

    千次阅读 2017-12-27 11:23:24
    1、创建的同时创建主键约束   (1)无命名 create table student ( studentid int primary key not null, studentname varchar(8), age int);   (2)有命名 create table students ( studentid int , ...

    1、创建表的同时创建主键约束

     

    (1)无命名 create table student ( studentid int primary key not null, studentname varchar(8), age int);

     

    (2)有命名 create table students ( studentid int , studentname varchar(8), age int, constraint yy primary key(studentid));

     

    2、删除表中已有的主键约束

     

    (1)无命名可用 SELECT * from user_cons_columns; 查找表中主键名称得student表中的主键名为SYS_C002715 alter table student drop constraint SYS_C002715;

     

    (2)有命名 alter table students drop constraint yy;

     

    3、向表中添加主键约束 alter table student add constraint pk_student primary key(studentid);

     

    4、向表中添加外键约束 ALTER TABLE table_A ADD CONSTRAINT FK_name FOREIGN KEY(id) REFERENCES table_B(id);

    展开全文
  • test_student02 结构 create table TEST_STUDENT02 ( ST_ID VARCHAR2(64), ST_NAME VARCHAR2(255), ST_AGE NUMBER(3), ST_ADDRESS VARCHAR2(255), ST_SEX VARCHAR2(8), ST_ST...

     

    表 test_student02 结构

    create table TEST_STUDENT02
    (
      ST_ID       VARCHAR2(64),
      ST_NAME     VARCHAR2(255),
      ST_AGE      NUMBER(3),
      ST_ADDRESS  VARCHAR2(255),
      ST_SEX      VARCHAR2(8),
      ST_STATUS   NUMBER(2),
      CREATE_DATE DATE
    )

     

    1、给 test_student02 表添加主键的2种方式。

     

    方式一:  在创建表的时候就设置主键。这种方式,主键名会被系统随机创建。 SQL语句如下所示:

    create table TEST_STUDENT02
    (
      ST_ID       VARCHAR2(64) primary key,
      ST_NAME     VARCHAR2(255),
      ST_AGE      NUMBER(3),
      ST_ADDRESS  VARCHAR2(255),
      ST_SEX      VARCHAR2(8),
      ST_STATUS   NUMBER(2),
      CREATE_DATE DATE
    )

     

    主键名可参见如下截图所示:

     

     

    方式二: 通过 ALTER 语句给 test_student02 表设置主键。 这种方式,主键名可自定义。

     

    
    -- 设置主键
    alter table test_student02 add constraint pk_test_student02 primary key(st_id);
    


    主键名可参见如下截图所示:

     

    2、删除表主键  

     

         SQL语句如下所示:

    
    -- 删除主键
    ALTER TABLE test_student02 DROP CONSTRAINT pk_test_student02; 
    
    

     

     

    展开全文
  • 我有一些没有主键的列,并且要添加一个主键列.NAME Age-------------Peter 45Bob 25John 56Peter 45这很好,但我的客户使用数据库用户没有权限添加序列或触发器.我想阻止联系数十名DBA管理员来更改用户权限或运行我的...

    我有一些没有主键的列,并且要添加一个主键列.

    NAME Age

    -------------

    Peter 45

    Bob 25

    John 56

    Peter 45

    这很好,但我的客户使用数据库用户没有权限添加序列或触发器.

    我想阻止联系数十名DBA管理员来更改用户权限或运行我的脚本.

    这是我的建议,只添加一个更新语句的PK:(我需要在步骤2中的帮助)

    步骤1:创建ID列(我有DB权限)

    ALTER TABLE PERSON ADD ID NUMBER(10,0);

    步骤2:问题:可以根据行的顺序或其他内容使用唯一的值初始化ID列吗?怎么样?

    UPDATE PERSON SET ID = something-unique

    步骤3:添加主键的约束后:(我DB有权限为此)

    ALTER TABLE PERSON ADD CONSTRAINT PK_ID PRIMARY KEY(ID);

    步骤4:Afterwords:主键由我的应用程序管理和添加.

    这将是结果:

    ID(PK) NAME Age

    ---------------------

    1 Peter 45

    2 Bob 25

    3 John 56

    4 Peter 45

    谢谢你们

    展开全文
  • Oracle数据库中没有自增字段,我们可以通过创建序列和触发器的方式,间接地实现自增的效果。 举个实例: 1.创建TEST create table TEST( id number(10) primary key, /*主键,自动增加*/ name varchar2(20),...

    Oracle数据库中没有自增字段,我们可以通过创建序列和触发器的方式,间接地实现自增的效果。

    举个实例:

    1.创建表TEST

    create table TEST(
               id number(10) primary key,   /*主键,自动增加*/
               name varchar2(20),		    /*姓名*/
    		   phone varchar2(20),		    /*电话*/
    		   sex varchar2(10),			/*性别*/
    		   age number(10)				/*年龄*/
               );

    2.创建自增长序列

    create sequence TEST_SEQ
    minvalue 1				-- 最小值
    -- maxvalue 2000		-- 最大值
    nomaxvalue      		-- 不设置最大值 
    start with 1			-- 从1开始计数
    increment by 1			-- 每次增加1
    nocycle					-- 一直累加,不循环
    cache 20;

    注意:根据实际情况 选择配置项。比如:表单中存在一部分原始数据,在创建自增长序列时,可以设置计数起始位置。例如表中存在100条原始数据,那么我们可以设置 start with 101 ,这样自增长就会从101开始。

    3.创建触发器

    create or replace trigger TEST_TR
    before insert on TEST
    for each row
    begin
    select TEST_SEQ.nextval into :new.id from dual;
    end TEST_TR;

            new.id中的id为自增的字段。 根据你自己的表字段自行设置。

    4.测试

    insert into TEST(name,phone,sex,age)  values('张三','18888888888','男',25)
    insert into TEST(name,phone,sex,age)  values('李四','18888888889','男',29)

    结果:

    到这,就可以实现oracle主键自增了。

    希望这篇文章对您的工作有所帮助。

    LAST   一切美好的遇见都是命中注定~!!!

    展开全文
  • 本帖最后由 zhenghaishu 于 2014-9-24 21:58 编辑1 创建季度分区create table t(mydate varchar2(20), amount number) partition by range(mydate)(partition p20140101 values less than ('20140101') tablespace...
  • 应用场景: 某软件系统中的数据库因为版本不断升级,需要定期导入最新的数据结构到测试数据库中的不同空间进行测试.导入的时候容易出现主键约束丢失问题....--Oracle使用游标所有数据表添加主键...
  • oracle 表添加主键 primary key

    千次阅读 2021-05-03 04:14:48
    根据数据库三范式就是每个建议要有主键,每个字段不可再分,与之间不存在部分依赖数据库的优化首先考虑的也是主键主键会在对应的字段加唯一约束、加not null,建 索引怎么为主键呢1,建表同时SQL>...
  • oracle数据库中表添加主键约束

    万次阅读 2017-10-04 15:22:18
    –创建完成后再添加约束 )—–方法一:创建的同时,添加主键约束语法:create table 表名 ( 列名1 数据类型及长度 constraint 主键名称(一般主键名称为”PK_”开头) primary key, 列名2 数据类型及长度 not ...
  • Oracle给表添加主键、外键

    千次阅读 2016-06-27 10:30:09
    1、创建的同时创建主键约束   (1)无命名 create table student ( studentid int primary key not null, studentname varchar(8), age int);   (2)有命名 create table students ( studentid...
  • oracle给已有表添加主键

    万次阅读 2018-06-08 13:35:37
    1,  创建序列名 create sequence ...2,添加唯一id create table customers(id int primary key not null, name varchar(15)); 3,插入数据 insert into customers values(customer_id_seq.curval, "name1");
  • ORACLE添加删除主键

    千次阅读 2021-02-02 19:32:34
    1、创建的同时创建主键约束(1)无命名 create table student ( studentid int primary key not null, studentname varchar(8), age int);(2)有命名 create table students ( studentid int , studentname varchar(8...
  • 这种方式的效果alter的方式是一样的 以上内容就是来自于小编为大家分享的关于Oracle如何添加主键约束方面的知识,同时也希望小编所为大家分享的知识能够为大家起到帮助,那么如果大家还想要了解更多关于其他方面的...
  • 简单的建表联系,包括主键外键,帮助新手快速熟悉建表的语句操作
  • Oracle】 设置主键

    千次阅读 2020-12-22 10:09:56
    请移步原文:https://www.php.cn/oracle/455511.html oracle设置主键的方法: ... 主键(primary key)是中的一个或多个字段,它的值用于唯一地标识中的某一条记录。 所谓的复合主键,就是指...
  • 数据的主键和索引一般情况下都是必须的,特别是有大量数据的时候,索引和主键更是必不可少,这样可以提供数据的查询效率;一、创建的同时创建主键约束(1)无命名create table student (studentid int primary key...
  • oracle 索引
  • 1.先添加字段。 alter table tablename1 add(columnId int);   2.修改主键字段的值为rownum的值 ...4.或者该已有主键,关闭该表主键,之后删除该列: alter table tablename1 drop column columnId; 5...
  • Oracle 添加主键和索引

    千次阅读 2021-05-08 00:35:31
    数据的主键和索引一般情况下都是必须的,特别是有大量数据的时候,索引和主键更是必不可少,这样可以提供数据的查询效率;一、创建的同时创建主键约束(1)无命名create table student (studentid int primary key...
  • Oracle添加主键、删除主键、修改主键

    万次阅读 多人点赞 2019-04-01 16:48:43
    二、回归主题,主键添加、删除等操作 1.有命名主键 1)有命名主键添加 2)有命名主键的删除 3)有命名主键的修改 2.无命名主键 1)无命名主键的创建 2)无命名主键的删除 3)无命名主键的修改 附加: ...
  • oracle添加主键的四种方法:

    千次阅读 2020-08-25 11:54:13
    oracle添加主键的四种方法: 原创 Oracle 作者:ultradb 时间:2016-11-02 19:40:22 2827 0 oracle添加主键的四种方法: 列级,级建立主键 drop table constraint_test; 1.create table constraint_test ( name_id ...
  • 1、创建的同时创建主键约束 (1)无命名 create table student ( studentid int primary key not null, studentname varchar(8), age int); (2)有命名 create table students ( studentid int , student...
  • oracle序列详解和创建自增主键Oracle序列主键 序列: 是oacle提供的用于产生一系列唯一数字的数据库对象。 l 自动提供唯一的数值 l 共享对象 l 主要用于提供主键值 l 将序列值装入内存可以提高访问效率1....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 65,513
精华内容 26,205
关键字:

oracle给表添加主键