mysql如何把一个表字段插入另一个表?

A表:list

id content
50 内容
200 内容
... ...

B表:infor

id content
15 内容
200 内容
... ...

表结构大致如上,想把A表里的ID插入B表,使之相关联,好取数据。
下面是我从网上找的相关语句

INSERT INTO `inofr` (id) SELECT id FROM list

但A表里的ID和B表里出现重复的ID。就导致了冲突,提示错误

[Err] 1062 - Duplicate entry '10' for key 1

请问该如何解决这一问题呢?因为对MYSQL不熟悉,还望见谅...谢谢啦!~

阅读 3.6k
2 个回答
mysql> use test
Database changed
mysql> drop tables if exists list,info;
Query OK, 0 rows affected (0.01 sec)

mysql> create table list(id int primary key,content text);
Query OK, 0 rows affected (0.06 sec)

mysql> create table info(id int primary key,content text);
Query OK, 0 rows affected (0.02 sec)

mysql> insert into list values(50,'neirong1'),(200,'neirong2'
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> insert into info values(15,'neirong3'),(200,'neirong4'
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> select * from list;
+-----+----------+
| id  | content  |
+-----+----------+
|  50 | neirong1 |
| 200 | neirong2 |
+-----+----------+
2 rows in set (0.00 sec)

mysql> select * from info;
+-----+----------+
| id  | content  |
+-----+----------+
|  15 | neirong3 |
| 200 | neirong4 |
+-----+----------+
2 rows in set (0.00 sec)

mysql> replace into info select * from list;
Query OK, 3 rows affected (0.00 sec)
Records: 2  Duplicates: 1  Warnings: 0

mysql> select * from info;
+-----+----------+
| id  | content  |
+-----+----------+
|  15 | neirong3 |
| 200 | neirong2 |
|  50 | neirong1 |
+-----+----------+
3 rows in set (0.00 sec)

B表新增一个关联字段:a_id 用来存放对应A表的ID

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题