我有一个表充满记录。我创建了具有相同列的表B,并且我想将A的所有内容复制到B.但是,表A具有自动递增键,所以如果我有前三个记录(1,'itemA')(2,'itemB ')(5,'itemE')(假设3,4,5在后面删除)。这些记录器将作为(1,'itemA')(2,'itemB')(3,'itemE')插入到表格B中。 有没有办法将它们完全一样地插入?将表复制到另一个表,但保留相同的自动增量键
另一件事是,表A是在MySQL和表B是MS SQL Server上
我有一个表充满记录。我创建了具有相同列的表B,并且我想将A的所有内容复制到B.但是,表A具有自动递增键,所以如果我有前三个记录(1,'itemA')(2,'itemB ')(5,'itemE')(假设3,4,5在后面删除)。这些记录器将作为(1,'itemA')(2,'itemB')(3,'itemE')插入到表格B中。 有没有办法将它们完全一样地插入?将表复制到另一个表,但保留相同的自动增量键
另一件事是,表A是在MySQL和表B是MS SQL Server上
的回答都不错,但在MS SQL,除非你执行你不能插入自动递增值转identiy_insert关:
SET IDENTITY_INSERT stock OFF;
INSERT INTO stock (stock_id,stock_item) VALUES (5,'itemE');
SET IDENTITY_INSERT stock ON;
这是我正在寻找的EXCATLY。谢谢大家:)
据我所知的MySQL允许插入AUTO_INCREMENT领域,所以你可以使用的语句像
insert into table2 (id, name) select id, name from table1
但后来,如果你需要插入与产生auto_inc表中的值,则需要在表2组AUTO_INCREMENT与表1
alter table table2 AUTO_INCREMENT = (SELECT AUTO_INCREMENT FROM information_schema.TABLES WHERE TABLE_SCHEMA = $dbName AND TABLE_NAME = 'table1')
是的auto_inc的价值。上述
create table b like a;
insert into b select * from a;
感谢您的帮助..这只适用于您设置IDENTITY_INSERT关闭后 – Haz 2012-04-15 10:54:06
在用名称测试和列(ID AUTOINC,COL1,COL2,COL3) 在用名称测试2和列(ID AUTOINC,COL4,COL5,COL6)
INSERT INTO test(col4, col5, col6) SELECT col4, col5, col6 FROM test2;
表的表php _and_ vb.net?真?如果你的问题与这些编程语言无关,为什么要用它们标记呢? – Oded 2012-04-14 18:00:51