当前位置: 首页 > 编程笔记 >

从第一个表中获取最大ID值,然后使用MySQL INSERT INTO select插入另一个表中的所有ID。

嵇昱
2023-03-14
本文向大家介绍从第一个表中获取最大ID值,然后使用MySQL INSERT INTO select插入另一个表中的所有ID。,包括了从第一个表中获取最大ID值,然后使用MySQL INSERT INTO select插入另一个表中的所有ID。的使用技巧和注意事项,需要的朋友参考一下

让我们首先创建一个表-

mysql> create table DemoTable1
(
   Id int,
   Name varchar(100)
);

使用插入命令在表中插入一些记录-

mysql> insert into DemoTable1 values(1001,'Chris');
mysql> insert into DemoTable1 values(999,'Robert');
mysql> insert into DemoTable1 values(1003,'Mike');
mysql> insert into DemoTable1 values(1002,'Sam');

使用select语句显示表中的所有记录-

mysql> select *from DemoTable1;

这将产生以下输出-

+------+--------+
| Id   | Name   |
+------+--------+
| 1001 | Chris  |
| 999  | Robert |
| 1003 | Mike   |
| 1002 | Sam    |
+------+--------+
4 rows in set (0.00 sec)

以下是创建第二个表的查询-

mysql> create table DemoTable2
(
   StudentId int,
   StudentFirstName varchar(100)
);

使用insert命令在表中插入一些记录。在这里,我们将最大ID值从第一个表插入到第二个表的StudentID列中-

mysql> insert into DemoTable2(StudentId,StudentFirstName)
   select
   (select Max(Id) from DemoTable1),
   Name from DemoTable1;
Records: 4 Duplicates: 0 Warnings: 0

使用select语句显示表中的所有记录-

mysql> select *from DemoTable1;

这将产生以下输出-

+-----------+------------------+
| StudentId | StudentFirstName |
+-----------+------------------+
|      1003 | Chris            |
|      1003 | Robert           |
|      1003 | Mike             |
|      1003 | Sam              |
+-----------+------------------+
4 rows in set (0.00 sec)
 类似资料:
  • 问题内容: 我想获取表中最后一个ID插入的值。我该怎么做? 问题答案: 好吧,我使用的解决方案是: 这将从插入数据库的最后一行获取id列:)

  • 我试图在从一个表创建一个值后将其插入另一个表我有两个数据库“mem”和“location” 我想从mem表中添加主键id,并将其插入到位置表中的user_id列中。 我有一个sql查询在我的注册表单页面,自动递增'id'在mem表中,但似乎没有添加相同的值到位置表中的user_id, 有人能帮忙吗!

  • 问题内容: 我有这段代码可以从“ jobseeker”表中选择所有字段,并可以通过将userType设置为“ admin”来更新“ user”表,其中userID =$ userID(此userID是我用户中的一个用户数据库)。然后,该语句应将这些值从“ jobseeker”表插入到“ admin”表中,然后从“ jobseeker表”中删除该用户。sql表很好,我的语句正在将userType更改

  • 您好,我试图从另一个表中为我的表在最后一列中插入值,但出现错误错误: 列“name”中的空值违反了非空约束详细信息:失败的行包含(ddf1Caf0-26c2-49e1-8a73-64227eae1f50, null, null, null, null, null,2532)。

  • 我需要一个MySQL函数,它可以在下面的SQL指令之后获取最后插入的id(不仅仅是最后一个)的列表: 更清楚地说,我想有这张桌子(我的桌子): 将在INSERT INTO语句之后复制新值,表现在显示如下: 此函数应返回以下列表:33,34,35 我认为一个临时解决方案是获取最后一个插入的id,然后根据复制的行数“手动”创建一个列表33、34、35。 但是我不知道是否存在SQL的本机函数!

  • 问题内容: 这是场景: 我正在尝试在插入表时创建引用记录。但是我得到的是null,因为它是自动从序列中生成的。我也尝试了触发器插入,但是结果是一样的。有什么办法解决吗? 问题答案: 避免使用规则,因为它们会再次咬住您。 在每行运行的表a上使用after触发器。它看起来应该像这样(未经测试):