Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用MYSQL在新表中创建新ID_Mysql - Fatal编程技术网

如何使用MYSQL在新表中创建新ID

如何使用MYSQL在新表中创建新ID,mysql,Mysql,我见过很多标题或兴趣相似但与我所寻找的不同的问题 我有一个表,其中已经有一些数据,有一个id列。我希望表中已有的几千行数据的id保持不变。我想从另一个表中插入不同的数据,该表还包括id(在这个集合中略多于92000行),我需要将这些id更改为其他一些不存在的id,以便不覆盖或替换已经存在的数据 这可能吗?插入时是否有某种增量 我尝试了INSERT IGNORE语句,但它替换了已有的数据 有什么建议吗 要以非1的自动增量值开始,请使用CREATE TABLE或ALTER TABLE设置该值,如下所

我见过很多标题或兴趣相似但与我所寻找的不同的问题

我有一个表,其中已经有一些数据,有一个id列。我希望表中已有的几千行数据的id保持不变。我想从另一个表中插入不同的数据,该表还包括id(在这个集合中略多于92000行),我需要将这些id更改为其他一些不存在的id,以便不覆盖或替换已经存在的数据

这可能吗?插入时是否有某种增量

我尝试了INSERT IGNORE语句,但它替换了已有的数据

有什么建议吗

要以非1的自动增量值开始,请使用CREATE TABLE或ALTER TABLE设置该值,如下所示:

mysql> ALTER TABLE tbl AUTO_INCREMENT = 100;
如果第一个表中的id是一个自动增量列,则可以忽略它

在表1第2栏、第3栏、第4栏中插入-省略id 选择第2列、第3列、第4列,…-id也被省略 来自表2 如果不是这样,并且假设它是一次性操作,您可以尝试以下方式分配新ID

INSERT INTO table1 (id, column2, column3, column4, ...)
SELECT t.max_id + s.id, s.column2, s.column3, s.column4, ...
  FROM
(
  SELECT @n := @n + 1 id, column1
    FROM table2 CROSS JOIN (SELECT @n := 0) i
   ORDER BY id
) s JOIN 
(
  SELECT MAX(id) max_id
    FROM table1
) t

这里是演示

请显示您的第一个表的定义模式您是否对ID使用自动递增?您的ID列具有主键?太棒了!您的第一块sql工作得非常好。非常感谢。