INSERT INTO newtable (ID)
VALUES (SELECT MAX( ID)+1 FROM newtable cust)
SELECT * FROM oldtable WHERE name like 'ItemName%';
伙计们,所以基本上我想做的是从旧表中获取一个列表,并将它们添加到具有相同值的新表中,但是仅将ID更改为新表中的+1。没像我尝试的那样工作,但是那是我迄今为止可以做到的..
答案 0 :(得分:0)
如果要重新编号新表中的ID(从最大ID值加1开始),则可以首先获取最大ID值并将其放入变量中:
SELECT MAX(id) INTO @maxid FROM oldtable;
然后插入所有添加了最大值的id:
INSERT INTO newtable (id)
SELECT id + @maxid + 1 FROM oldtable WHERE name like 'ItemName%';
如果还需要其他属性:
INSERT INTO newtable (id, name, otherattrs)
SELECT id + @maxid + 1, name, otherattrs FROM oldtable WHERE name like 'ItemName%';
更新: 如果您不想显式列出所有列,则可以使用以下三个语句来实现相同的目的:
SELECT MAX(id) INTO @maxid FROM oldtable;
INSERT INTO newtable
SELECT * FROM oldtable WHERE name like 'ItemName%';
UPDATE newtable SET id = id + @maxid + 1;