如何在批量插入中自动增加ID

时间:2015-09-18 20:50:16

标签: mysql batch-insert

我有以下要执行的查询

INSERT INTO TableB (ID, Age, RollNo)
SELECT (select (max(id) + 1) from TableB), Age, RollNo
FROM TableA
WHERE Age > 20 AND RollNo < 500

现在所有新条目在TableB中具有相同的ID

我做错了什么。

P.S。我无法更改列属性,我无法将其设置为AUTO-INCREMENT,它需要具有默认值NULL

1 个答案:

答案 0 :(得分:0)

TableB中的AUTO_INCREMENT列声明为ALTER TABLE TableB MODIFY COLUMN ID INT auto_increment ,最终将达到此目的

SET @id := (SELECT MAX(ID) FROM TableB);

INSERT INTO TableB (ID, Age, RollNo)
SELECT (@id := @id + 1), Age, RollNo
FROM TableA
WHERE Age > 20 AND RollNo < 500;

在这种情况下,你可以生成像

这样的数字
scope.render = function(data) {
    var svg = parent.append('svg');

    renderTimeout = $timeout(function() {
          var width = d3.select(ele[0])[0][0].offsetWidth - margin,
              height = d3.select(ele[0]).node().getBoundingClientRect().height;
              svg.attr('height', height);
相关问题