加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

测试目标端表增加一个自增列主键

(2016-03-14 15:57:45)
分类: ogg
测试目标端表增加一个自增列主键,结果发现 目标表insert可以自增主键列,但是插入有过成功也有过失败。
delete原表记录,目标端应用也时好时坏,奇怪了。
update记录也失败。目标端没有变化。


Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

C:\Users\Administrator>sqlplus /nolog

SQL*Plus: Release 11.2.0.3.0 Production on 星期一 3月 14 15:01:56 2016

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

SQL> conn /as sysdba
已连接到空闲例程。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area 2555445248 bytes
Fixed Size                  2257912 bytes
Variable Size             872418312 bytes
Database Buffers         1660944384 bytes
Redo Buffers               19824640 bytes
数据库装载完毕。
数据库已经打开。
SQL> conn admin/admin
已连接。
SQL> select * from jyc;

        ID NAME
---------- --------------------
         1 ddlll
         3 dfsd
         4 45dd
         5 eed

SQL> select * from bj.jyc;

        ID NAME                       UNID
---------- -------------------- ----------
         1 ddlll
         3 dfsd
         4 45dd
         5 eed

SQL> CREATE sequence test_seq start with 1 increment by 1 nomaxvalue nocycle;

序列已创建。

SQL> CREATE OR REPLACE TRIGGER test_trig_autoinc
  2  BEFORE INSERT ON jyc
  3  FOR EACH ROW
  4  BEGIN
  5    IF (:new.UNID IS NULL) THEN
  6      SELECT test_seq.nextval INTO :new.UNID FROM DUAL;
  7    END IF;
  8  END;
  9  /

触发器已创建

SQL> drop sequence test_seq;

序列已删除。

SQL> drop trigger test_trig_autoinc;

触发器已删除。

SQL> conn bj/bj
已连接。
SQL> CREATE sequence test_seq start with 1 increment by 1 nomaxvalue nocycle;

序列已创建。

SQL>
SQL> CREATE OR REPLACE TRIGGER test_trig_autoinc
  2  BEFORE INSERT ON jyc
  3  FOR EACH ROW
  4  BEGIN
  5    IF (:new.ID IS NULL) THEN
  6      SELECT test_seq.nextval INTO :new.ID FROM DUAL;
  7    END IF;
  8  END;
  9  /

触发器已创建

SQL> select * from jyc;

        ID NAME                       UNID
---------- -------------------- ----------
         1 ddlll
         3 dfsd
         4 45dd
         5 eed

SQL> update jyc set unid=test_seq.nextval;

已更新4行。

SQL> commit;

提交完成。

SQL> select * from jyc;

        ID NAME                       UNID
---------- -------------------- ----------
         1 ddlll                         1
         3 dfsd                          2
         4 45dd                          3
         5 eed                           4

SQL> alter table jyc add constraint pk_jyc primary key(unid);

表已更改。

SQL> show user;
USER 为 "BJ"
SQL> select * from jyc;

        ID NAME                       UNID
---------- -------------------- ----------
         1 ddlll                         1
         3 dfsd                          2
         4 45dd                          3
         5 eed                           4

SQL> select index_name from user_tables;
select index_name from user_tables
       *
第 1 行出现错误:
ORA-00904: "INDEX_NAME": 标识符无效


SQL> select index_name from user_indexes;

INDEX_NAME
------------------------------
PK_JYC

SQL> /

INDEX_NAME
------------------------------
PK_JYC

SQL> /

INDEX_NAME
------------------------------
PK_JYC

SQL> select * from jyc;

        ID NAME                       UNID
---------- -------------------- ----------
         1 ddlll                         1
         3 dfsd                          2
         4 45dd                          3
         5 eed                           4

SQL> conn admin/admin
已连接。
SQL> insert into jyc values(6,'abcd');

已创建 1 行。

SQL> commit;

提交完成。

SQL> select * from bj.jyc;

        ID NAME                       UNID
---------- -------------------- ----------
         1 ddlll                         1
         3 dfsd                          2
         4 45dd                          3
         5 eed                           4

SQL> /

        ID NAME                       UNID
---------- -------------------- ----------
         1 ddlll                         1
         3 dfsd                          2
         4 45dd                          3
         5 eed                           4

SQL> /

        ID NAME                       UNID
---------- -------------------- ----------
         1 ddlll                         1
         3 dfsd                          2
         4 45dd                          3
         5 eed                           4

SQL> set time on
15:09:09 SQL> select * from bj.jyc;

        ID NAME                       UNID
---------- -------------------- ----------
         1 ddlll                         1
         3 dfsd                          2
         4 45dd                          3
         5 eed                           4

15:09:12 SQL> select * from jyc;

        ID NAME
---------- --------------------
         1 ddlll
         3 dfsd
         4 45dd
         5 eed
         6 abcd

15:09:17 SQL> select * from bj.jyc;

        ID NAME                       UNID
---------- -------------------- ----------
         1 ddlll                         1
         3 dfsd                          2
         4 45dd                          3
         5 eed                           4

15:09:26 SQL> select * from bj.jyc;

        ID NAME                       UNID
---------- -------------------- ----------
         1 ddlll                         1
         3 dfsd                          2
         4 45dd                          3
         5 eed                           4

15:09:34 SQL> /

        ID NAME                       UNID
---------- -------------------- ----------
         1 ddlll                         1
         3 dfsd                          2
         4 45dd                          3
         5 eed                           4

15:09:49 SQL> /

        ID NAME                       UNID
---------- -------------------- ----------
         1 ddlll                         1
         3 dfsd                          2
         4 45dd                          3
         5 eed                           4

15:10:15 SQL> select * from jyc;

        ID NAME
---------- --------------------
         1 ddlll
         3 dfsd
         4 45dd
         5 eed
         6 abcd

15:10:20 SQL> insert into jyc values(7,'sdf');

已创建 1 行。

15:10:29 SQL> commit;

提交完成。

15:10:32 SQL> select * from bj.jyc;

        ID NAME                       UNID
---------- -------------------- ----------
         1 ddlll                         1
         3 dfsd                          2
         4 45dd                          3
         5 eed                           4

15:10:52 SQL> select * from bj.jyc;

        ID NAME                       UNID
---------- -------------------- ----------
         1 ddlll                         1
         3 dfsd                          2
         4 45dd                          3
         5 eed                           4

15:10:54 SQL> insert into jyc values(8,'abcd');

已创建 1 行。

15:11:25 SQL> commit;

提交完成。

15:11:27 SQL> select * from bj.jyc;

        ID NAME                       UNID
---------- -------------------- ----------
         1 ddlll                         1
         3 dfsd                          2
         4 45dd                          3
         5 eed                           4

15:11:44 SQL> select * from bj.jyc;

        ID NAME                       UNID
---------- -------------------- ----------
         1 ddlll                         1
         3 dfsd                          2
         4 45dd                          3
         5 eed                           4

15:11:47 SQL> /

        ID NAME                       UNID
---------- -------------------- ----------
         1 ddlll                         1
         3 dfsd                          2
         4 45dd                          3
         5 eed                           4

15:12:41 SQL> /

        ID NAME                       UNID
---------- -------------------- ----------
         1 ddlll                         1
         3 dfsd                          2
         4 45dd                          3
         5 eed                           4

15:14:50 SQL> conn bj/bj
已连接。
15:15:25 SQL> alter table jyc drop constraint pk_jyc;

表已更改。

15:15:29 SQL> select * from bj.jyc;

        ID NAME                       UNID
---------- -------------------- ----------
         1 ddlll                         1
         3 dfsd                          2
         4 45dd                          3
         5 eed                           4

15:15:32 SQL> /

        ID NAME                       UNID
---------- -------------------- ----------
         1 ddlll                         1
         3 dfsd                          2
         4 45dd                          3
         5 eed                           4

15:16:10 SQL> /

        ID NAME                       UNID
---------- -------------------- ----------
         1 ddlll                         1
         3 dfsd                          2
         4 45dd                          3
         5 eed                           4

15:17:22 SQL> /

        ID NAME                       UNID
---------- -------------------- ----------
         6 abcd
         7 sdf
         8 abcd
         1 ddlll                         1
         3 dfsd                          2
         4 45dd                          3
         5 eed                           4

已选择7行。

15:18:54 SQL> select trigger_name from user_triggers;

TRIGGER_NAME
------------------------------
TEST_TRIG_AUTOINC

15:19:19 SQL> insert into jyc values(9,'abcdee');
insert into jyc values(9,'abcdee')
            *
第 1 行出现错误:
ORA-00947: 没有足够的值


15:19:55 SQL> insert into jyc(id,name) values(9,'abcdee');

已创建 1 行。

15:20:14 SQL> commit;

提交完成。

15:20:16 SQL> select * from bj.jyc;

        ID NAME                       UNID
---------- -------------------- ----------
         6 abcd
         7 sdf
         8 abcd
         1 ddlll                         1
         3 dfsd                          2
         4 45dd                          3
         5 eed                           4
         9 abcdee

已选择8行。

15:20:20 SQL> select trigger_name,status from user_triggers;

TRIGGER_NAME                   STATUS
------------------------------ --------
TEST_TRIG_AUTOINC              ENABLED

15:35:08 SQL> insert into jyc(id,name) values(19,'23abcdee');

已创建 1 行。

15:38:55 SQL> commit;

提交完成。

15:38:58 SQL> select * from bj.jyc;

        ID NAME                       UNID
---------- -------------------- ----------
         6 abcd
         7 sdf
         8 abcd
         1 ddlll                         1
         3 dfsd                          2
         4 45dd                          3
         5 eed                           4
         9 abcdee
        19 23abcdee

已选择9行。

15:39:01 SQL> conn bj/bj
已连接。
15:41:33 SQL> SELECT test_seq.nextval FROM DUAL;

   NEXTVAL
----------
         5

15:41:38 SQL> 、
SP2-0042: 未知命令 "、" - 其余行忽略。
15:41:42 SQL> /

   NEXTVAL
----------
         6

15:41:44 SQL> desc user_triggers;
 名称                                      是否为空? 类型
 ----------------------------------------- -------- ----------------------------
 TRIGGER_NAME                                       VARCHAR2(30)
 TRIGGER_TYPE                                       VARCHAR2(16)
 TRIGGERING_EVENT                                   VARCHAR2(227)
 TABLE_OWNER                                        VARCHAR2(30)
 BASE_OBJECT_TYPE                                   VARCHAR2(16)
 TABLE_NAME                                         VARCHAR2(30)
 COLUMN_NAME                                        VARCHAR2(4000)
 REFERENCING_NAMES                                  VARCHAR2(128)
 WHEN_CLAUSE                                        VARCHAR2(4000)
 STATUS                                             VARCHAR2(8)
 DESCRIPTION                                        VARCHAR2(4000)
 ACTION_TYPE                                        VARCHAR2(11)
 TRIGGER_BODY                                       LONG
 CROSSEDITION                                       VARCHAR2(7)
 BEFORE_STATEMENT                                   VARCHAR2(3)
 BEFORE_ROW                                         VARCHAR2(3)
 AFTER_ROW                                          VARCHAR2(3)
 AFTER_STATEMENT                                    VARCHAR2(3)
 INSTEAD_OF_ROW                                     VARCHAR2(3)
 FIRE_ONCE                                          VARCHAR2(3)
 APPLY_SERVER_ONLY                                  VARCHAR2(3)

15:42:04 SQL> select rigger_name,status,table_owner from user_trigger;
select rigger_name,status,table_owner from user_trigger
                                           *
第 1 行出现错误:
ORA-00942: 表或视图不存在


15:42:34 SQL> select rigger_name,status,table_owner from user_triggers;
select rigger_name,status,table_owner from user_triggers
       *
第 1 行出现错误:
ORA-00904: "RIGGER_NAME": 标识符无效


15:42:37 SQL> select trigger_name,status,table_owner from user_triggers;

TRIGGER_NAME                   STATUS   TABLE_OWNER
------------------------------ -------- ------------------------------
TEST_TRIG_AUTOINC              ENABLED  BJ

15:42:47 SQL> CREATE TABLE test(
15:43:09   2  id number(18,0),
15:43:09   3  name varchar2(20));

表已创建。

15:43:11 SQL> CREATE OR REPLACE TRIGGER test_trig_autoinc1
15:43:35   2  BEFORE INSERT ON test
15:43:35   3  FOR EACH ROW
15:43:35   4  BEGIN
15:43:35   5    IF (:new.ID IS NULL) THEN
15:43:35   6      SELECT test_seq.nextval INTO :new.ID FROM DUAL;
15:43:35   7    END IF;
15:43:35   8  END;
15:43:35   9  /

触发器已创建

15:43:37 SQL> insert into test(name) values('luoyoumou1');

已创建 1 行。

15:44:03 SQL> commit;

提交完成。

15:44:06 SQL> insert into test(name) values('luoyoumou2');

已创建 1 行。

15:44:10 SQL> commit;

提交完成。

15:44:11 SQL> select * from test;

        ID NAME
---------- --------------------
         7 luoyoumou1
         8 luoyoumou2

15:44:15 SQL> drop trigger test_trig_autoinc;

触发器已删除。

15:44:46 SQL>
15:44:46 SQL> CREATE OR REPLACE TRIGGER test_trig_autoinc
15:44:46   2  BEFORE INSERT ON jyc
15:44:46   3  FOR EACH ROW
15:44:46   4  BEGIN
15:44:46   5    IF (:new.UNID IS NULL) THEN
15:44:46   6      SELECT test_seq.nextval INTO :new.UNID FROM DUAL;
15:44:46   7    END IF;
15:44:46   8  END;
15:44:46   9  /

触发器已创建

15:44:46 SQL> select * from jyc;

        ID NAME                       UNID
---------- -------------------- ----------
         6 abcd
         7 sdf
         8 abcd
         1 ddlll                         1
         3 dfsd                          2
         4 45dd                          3
         5 eed                           4
         9 abcdee
        19 23abcdee

已选择9行。

15:44:58 SQL> delete from jyc where id=19;

已删除 1 行。

15:45:09 SQL> delete from jyc where id=9;

已删除 1 行。

15:45:13 SQL> delete from jyc where id=6;

已删除 1 行。

15:45:20 SQL> delete from jyc where id=7;

已删除 1 行。

15:45:22 SQL> delete from jyc where id=8;

已删除 1 行。

15:45:25 SQL> commit;

提交完成。

15:45:29 SQL> select * from jyc;

        ID NAME                       UNID
---------- -------------------- ----------
         1 ddlll                         1
         3 dfsd                          2
         4 45dd                          3
         5 eed                           4

15:45:33 SQL> select * from jyc;

        ID NAME                       UNID
---------- -------------------- ----------
         6 abcd                          9
         7 sdf                          10
         8 abcd                         11
         1 ddlll                         1
         3 dfsd                          2
         4 45dd                          3
         5 eed                           4

已选择7行。

15:46:00 SQL> alter table jyc add constraint pk_jyc primary key(unid);

表已更改。

15:46:30 SQL> conn admin/admin
已连接。
15:46:40 SQL> insert into jyc(id,name) values(9,'23abcdee');

已创建 1 行。

15:47:04 SQL> commit;

提交完成。

15:47:07 SQL> select * from jyc;

        ID NAME
---------- --------------------
         1 ddlll
         3 dfsd
         4 45dd
         5 eed
         6 abcd
         7 sdf
         8 abcd
         9 23abcdee

已选择8行。

15:47:11 SQL> select * from bj.jyc;

        ID NAME                       UNID
---------- -------------------- ----------
         6 abcd                          9
         7 sdf                          10
         8 abcd                         11
         9 23abcdee                     12
         1 ddlll                         1
         3 dfsd                          2
         4 45dd                          3
         5 eed                           4

已选择8行。

15:47:16 SQL> insert into jyc values(10,'dee');

已创建 1 行。

15:48:01 SQL> commit;

提交完成。

15:48:03 SQL> select * from bj.jyc;

        ID NAME                       UNID
---------- -------------------- ----------
         6 abcd                          9
         7 sdf                          10
         8 abcd                         11
         9 23abcdee                     12
         1 ddlll                         1
         3 dfsd                          2
         4 45dd                          3
         5 eed                           4

已选择8行。

15:48:05 SQL> select * from bj.jyc;

        ID NAME                       UNID
---------- -------------------- ----------
        10 dee                          13
         6 abcd                          9
         7 sdf                          10
         8 abcd                         11
         9 23abcdee                     12
         1 ddlll                         1
         3 dfsd                          2
         4 45dd                          3
         5 eed                           4

已选择9行。

15:48:07 SQL> insert into jyc(id,name) values(11,'23abcdee');

已创建 1 行。

15:48:39 SQL> commit;

提交完成。

15:48:40 SQL> select * from bj.jyc;

        ID NAME                       UNID
---------- -------------------- ----------
        10 dee                          13
         6 abcd                          9
         7 sdf                          10
         8 abcd                         11
         9 23abcdee                     12
         1 ddlll                         1
         3 dfsd                          2
         4 45dd                          3
         5 eed                           4

已选择9行。

15:48:45 SQL> select * from bj.jyc;

        ID NAME                       UNID
---------- -------------------- ----------
        10 dee                          13
        11 23abcdee                     14
         6 abcd                          9
         7 sdf                          10
         8 abcd                         11
         9 23abcdee                     12
         1 ddlll                         1
         3 dfsd                          2
         4 45dd                          3
         5 eed                           4

已选择10行。

15:48:51 SQL> delete from jyc where id=1;

已删除 1 行。

15:49:13 SQL> commit;

提交完成。

15:49:15 SQL> select * from bj.jyc;

        ID NAME                       UNID
---------- -------------------- ----------
        10 dee                          13
        11 23abcdee                     14
         6 abcd                          9
         7 sdf                          10
         8 abcd                         11
         9 23abcdee                     12
         1 ddlll                         1
         3 dfsd                          2
         4 45dd                          3
         5 eed                           4

已选择10行。

15:49:18 SQL> select * from bj.jyc;

        ID NAME                       UNID
---------- -------------------- ----------
        10 dee                          13
        11 23abcdee                     14
         6 abcd                          9
         7 sdf                          10
         8 abcd                         11
         9 23abcdee                     12
         1 ddlll                         1
         3 dfsd                          2
         4 45dd                          3
         5 eed                           4

已选择10行。

15:49:21 SQL> select * from bj.jyc;

        ID NAME                       UNID
---------- -------------------- ----------
        10 dee                          13
        11 23abcdee                     14
         6 abcd                          9
         7 sdf                          10
         8 abcd                         11
         9 23abcdee                     12
         1 ddlll                         1
         3 dfsd                          2
         4 45dd                          3
         5 eed                           4

已选择10行。

15:49:22 SQL> select * from bj.jyc;

        ID NAME                       UNID
---------- -------------------- ----------
        10 dee                          13
        11 23abcdee                     14
         6 abcd                          9
         7 sdf                          10
         8 abcd                         11
         9 23abcdee                     12
         1 ddlll                         1
         3 dfsd                          2
         4 45dd                          3
         5 eed                           4

已选择10行。

15:49:25 SQL> select * from bj.jyc;

        ID NAME                       UNID
---------- -------------------- ----------
        10 dee                          13
        11 23abcdee                     14
         6 abcd                          9
         7 sdf                          10
         8 abcd                         11
         9 23abcdee                     12
         1 ddlll                         1
         3 dfsd                          2
         4 45dd                          3
         5 eed                           4

已选择10行。

15:49:27 SQL> select * from bj.jyc;

        ID NAME                       UNID
---------- -------------------- ----------
        10 dee                          13
        11 23abcdee                     14
         6 abcd                          9
         7 sdf                          10
         8 abcd                         11
         9 23abcdee                     12
         1 ddlll                         1
         3 dfsd                          2
         4 45dd                          3
         5 eed                           4

已选择10行。

15:49:29 SQL> select * from jyc;

        ID NAME
---------- --------------------
         3 dfsd
         4 45dd
         5 eed
         6 abcd
         7 sdf
         8 abcd
         9 23abcdee
        10 dee
        11 23abcdee

已选择9行。

15:49:33 SQL> select * from bj.jyc;

        ID NAME                       UNID
---------- -------------------- ----------
        10 dee                          13
        11 23abcdee                     14
         6 abcd                          9
         7 sdf                          10
         8 abcd                         11
         9 23abcdee                     12
         1 ddlll                         1
         3 dfsd                          2
         4 45dd                          3
         5 eed                           4

已选择10行。

15:49:38 SQL> insert into jyc(id,name) values(12,'cdee');

已创建 1 行。

15:49:50 SQL> commit;

提交完成。

15:49:52 SQL> select * from bj.jyc;

        ID NAME                       UNID
---------- -------------------- ----------
        10 dee                          13
        11 23abcdee                     14
         6 abcd                          9
         7 sdf                          10
         8 abcd                         11
         9 23abcdee                     12
         1 ddlll                         1
         3 dfsd                          2
         4 45dd                          3
         5 eed                           4

已选择10行。

15:49:56 SQL> select * from bj.jyc;

        ID NAME                       UNID
---------- -------------------- ----------
        10 dee                          13
        11 23abcdee                     14
        12 cdee                         15
         6 abcd                          9
         7 sdf                          10
         8 abcd                         11
         9 23abcdee                     12
         1 ddlll                         1
         3 dfsd                          2
         4 45dd                          3
         5 eed                           4

已选择11行。

15:50:02 SQL> select * from jyc;

        ID NAME
---------- --------------------
         3 dfsd
         4 45dd
         5 eed
         6 abcd
         7 sdf
         8 abcd
         9 23abcdee
        10 dee
        11 23abcdee
        12 cdee

已选择10行。

15:50:08 SQL> select * from jyc;

        ID NAME
---------- --------------------
         3 dfsd
         4 45dd
         5 eed
         6 abcd
         7 sdf
         8 abcd
         9 23abcdee
        10 dee
        11 23abcdee
        12 cdee

已选择10行。

15:50:19 SQL> select * from bj.jyc;

        ID NAME                       UNID
---------- -------------------- ----------
        10 dee                          13
        11 23abcdee                     14
        12 cdee                         15
         6 abcd                          9
         7 sdf                          10
         8 abcd                         11
         9 23abcdee                     12
         1 ddlll                         1
         3 dfsd                          2
         4 45dd                          3
         5 eed                           4

已选择11行。

15:50:23 SQL> /

        ID NAME                       UNID
---------- -------------------- ----------
        10 dee                          13
        11 23abcdee                     14
        12 cdee                         15
         6 abcd                          9
         7 sdf                          10
         8 abcd                         11
         9 23abcdee                     12
         1 ddlll                         1
         3 dfsd                          2
         4 45dd                          3
         5 eed                           4

已选择11行。

15:51:35 SQL> /

        ID NAME                       UNID
---------- -------------------- ----------
        10 dee                          13
        11 23abcdee                     14
        12 cdee                         15
         6 abcd                          9
         7 sdf                          10
         8 abcd                         11
         9 23abcdee                     12
         1 ddlll                         1
         3 dfsd                          2
         4 45dd                          3
         5 eed                           4

已选择11行。

15:57:28 SQL>

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有