我有一个表格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中有没有办法做到这一点?或者唯一的方法是编写脚本?
答案 0 :(得分: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
答案 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;