难道是
INSERT INTO 表 SELECT * FROM 表
还要 主键值 自动更改的哪种 *** 作?
这种情况下,可以让 主键使用 序列号 来处理。
写个触发器就行。
下面是个例子, 请注意,插入表的时候,主键由触发器填写。
SQL>CREATE SEQUENCE test_sequence2
2increment by 1-- 每次递增1
3start with 1 -- 从1开始
4nomaxvalue -- 没有最大值
5minvalue 1 -- 最小值=1
6NOCYCLE -- 不循环
Sequence created.
SQL>CREATE TABLE test_create_tab2 (
2id INT,
3val VARCHAR(10),
4PRIMARY KEY (id)
5 )
Table created.
SQL>CREATE OR REPLACE TRIGGER BeforeTestCreate2Insert
2BEFORE INSERT ON test_create_tab2
3 FOR EACH ROW
4 BEGIN
5SELECT test_sequence2.nextval INTO :new.id FROM dual
6 END
7 /
Trigger created.
SQL>INSERT INTO test_create_tab2(val) VALUES ('NO id')
1 row created.
-- 注意: 这里填写了主键=1 但是由于触发器的原因, 被无视了。
SQL>INSERT INTO test_create_tab2(id, val) VALUES (1, 'id no use')
1 row created.
SQL>SELECT * FROM test_create_tab2
ID VAL
---------- --------------------
1 NO id
2 id no use
不知道你具体数据类型,,,假定为varchar,不需要类型转换,,,直接
查询语句:
SELECT b,c + ',' + b FROM A
更新语句:
UPDATE test SET c=c + ',' + b
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)