2

我有一张桌子说TblA像这样的列

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

我想将此数据插入到TblBlike

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

TblC喜欢

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

mysql中有什么方法可以做到这一点吗?或者这样做的唯一方法是编写脚本?

4

2 回答 2

3

如果a是 的主键tblA,那么您可以分两步执行此操作:

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
于 2013-02-22T07:41:06.997 回答
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;
于 2013-02-22T08:23:21.490 回答