2

我想将具有名为域的表的数据库中的数据复制到另一个也具有名为域的表的数据库中。

我曾尝试使用 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' 
4

2 回答 2

9

你可以这样做:

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

注意: 不要在插入和选择语句中包含自动递增的列。

Sql 小提琴示例

于 2012-09-19T18:25:34.587 回答
1

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

对于具有和列的表a,这些都是无效的:bc

INSERT INTO YourTable VALUES (1, 2);

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

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

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

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

于 2012-09-19T18:19:02.433 回答