将数据从一个数据库复制到同一个表中的另一个

时间:2012-09-19 18:12:38

标签: mysql

我想将数据从一个名为domains的数据库复制到另一个数据库,该数据库也有一个名为domains的表。

我尝试过使用phpmyadmin但是它不会因为Auto_increment值而复制。它只是不会被复制到另一个database.table。

我想知道在这方面可以做些什么?我也不想将旧的ID(auto_increment)值从第一个数据库复制到另一个数据库。

phpmyadmin回复。

 #1136 - Column count doesn't match value count at row 1 

这两个结构在数据库中是相同的。

我的查询。

 INSERT INTO `site1`.`domains`
 SELECT * FROM `site33`.`domains` 

^这很多都是固定的。 现在出现了我得到的auto_increment问题:

  #1062 - Duplicate entry '1' for key 'PRIMARY' 

2 个答案:

答案 0 :(得分:9)

你可以这样做:

INSERT INTO database2.table1 (field2,field3)
SELECT table2.field2,table2.field3
FROM table2;

注意: 不要在insert和select语句中包含自动增量的列。

Sql Fiddle example

答案 1 :(得分:1)

您正在使用具有错误数量值的insert语句,例如:

对于包含abc列的表格,这些都无效:

INSERT INTO YourTable VALUES (1, 2);

INSERT INTO YourTable(b, c) VALUES (1, 2, 3);

INSERT INTO YourTable(a, b, c) VALUES (2, 3);

列列表中的列数必须与值列表中的值数相匹配。

您可以只省略列列表,但前提是您为每列指定一个值,并按表中列的存在顺序。不过,这是不好的做法。最好始终指定所需的确切列。