将数据从一个表插入到多个表中

时间:2013-02-22 07:31:43

标签: mysql insert

我有一个表格TblA,其中包含

等列
+---------------+
| Field         | 
+---------------+
| a             | 
| b             |
| c             |
| d             | 
| e             | 
| f             | 
+---------------+

我想将此数据插入TblB

+---------------+
| Field         | 
+---------------+
| id  (Autoincrement) | 
| a             | 
| b             |
| c             |
+---------------+

TblC喜欢

+---------------+
| Field         | 
+---------------+
| id  (Equal to the one in tblB) | 
| d             | 
| e             |
| f             |
+---------------+

mysql中有没有办法做到这一点?或者唯一的方法是编写脚本?

2 个答案:

答案 0 :(得分:3)

如果atblA的主键,那么您可以分两步完成此操作:

INSERT INTO tblB (a,b,c)
SELECT a,b,c FROM tblA

接下来是:

INSERT INTO tblC (id,d,e,f)
SELECT b.id,a.d,a.e,a.f
FROM tblA a
JOIN tblB b ON a.a = b.a

答案 1 :(得分:0)

虽然@mvp帮助我在tblA中没有任何主键时采用这种方法,我想我会在这里发布。

首先使用

添加一个名为id的新自动增量列
  ALTER TABLE TblA 
  ADD COLUMN id INT NOT NULL AUTO_INCREMENT FIRST, 
  ADD primary KEY id(id);

然后做

INSERT INTO TblB (id, a, b, c) 
SELECT id, a, b, c FROM TblA;

INSERT INTO TblC (id, d, e, f) 
SELECT id, d, e, f FROM TblA;