2

我可以使用此查询将数据从表复制到另一个:

// table1( tid , uid, name, link)

// table2(mid , uid  , name, link) 

query = "INERT INTO TABLE2 ("+ getIdFromFunction()+" , uid, name, link) SELECT * FROM TABLE1";

我想从 table1 填充 table2,但每次调用这个查询时都会有一定的值

就像是:

INSERT INTO TABLE2 (0, uid, name, link) SELECT * FROM TABLE1

那可能吗 ??

4

2 回答 2

4

INSERT命令有一个列名列表;这些值在SELECT命令中指定。所以你想要这个:

INSERT INTO table2(mid, uid, name, link)
SELECT 0, uid, name link
FROM table1;
于 2013-05-15T20:04:40.700 回答
0

@MBH不,您不能在插入语句中使用 select* from Table1 ..首先您必须将 table1 中的记录分配到记录中,然后只有您可以将值传递到 table2 ..您的代码应如下所示

declare
 r record;
select into r tid , uid, name, link from tale1;
INSERT INTO TABLE2 (tid, uid, name, link) values 
     (INSERT INTO TABLE2 (r.tid r.uid,r.name, r.link))
于 2013-05-15T18:22:28.307 回答