C# 如何获取新添加的记录
在我的应用程序中,我希望在gridview中通过导入操作显示新添加的记录。sql中是否有任何方法可以检索新添加的行 我试着用代码来做这件事,试着在插入之前和插入之后获得差异,并且它工作得很好,但是这使得应用程序非常慢。所以,我想在数据库本身中进行 我使用Mysql,ASP.NET 例如: 表在导入操作之前可能有这些记录C# 如何获取新添加的记录,c#,asp.net,mysql,sql,C#,Asp.net,Mysql,Sql,在我的应用程序中,我希望在gridview中通过导入操作显示新添加的记录。sql中是否有任何方法可以检索新添加的行 我试着用代码来做这件事,试着在插入之前和插入之后获得差异,并且它工作得很好,但是这使得应用程序非常慢。所以,我想在数据库本身中进行 我使用Mysql,ASP.NET 例如: 表在导入操作之前可能有这些记录 ID Name 1 A 2 B 3 C 导入后,表可能是这样的 ID Name 1 A 2 B 3 C 4 D 5 E 6 F 我想要这样的结果 ID Na
ID Name
1 A
2 B
3 C
导入后,表可能是这样的
ID Name
1 A
2 B
3 C
4 D
5 E
6 F
我想要这样的结果
ID Name
4 D
5 E
6 F
您需要在表上定义列,或者您可以使用时间戳字段检索新添加的记录,请尝试以下操作:
SELECT *
FROM table_name
ORDER BY id DESC
LIMIT 10;
对于单行插入,可以在插入查询后使用:
对于多行插入,可以执行以下步骤:
START TRANSACTION;
SELECT MAX(id) INTO @var_max_id FROM table_name;
INSERT INTO table_name VALUES(..),(..),...;
SELECT MAX(id) INTO @var_max_id_new FROM table_name;
COMMIT;
SELECT *
FROM table_name
WHERE id BETWEEN (@var_max_id + 1) AND @var_max_id_new;
您需要在表上定义列,或者您可以使用时间戳字段检索新添加的记录,请尝试以下操作:
SELECT *
FROM table_name
ORDER BY id DESC
LIMIT 10;
对于单行插入,可以在插入查询后使用:
对于多行插入,可以执行以下步骤:
START TRANSACTION;
SELECT MAX(id) INTO @var_max_id FROM table_name;
INSERT INTO table_name VALUES(..),(..),...;
SELECT MAX(id) INTO @var_max_id_new FROM table_name;
COMMIT;
SELECT *
FROM table_name
WHERE id BETWEEN (@var_max_id + 1) AND @var_max_id_new;
如果您对记录使用自动增量ID,您可以使用:
SELECT * FROM [table] ORDER BY [id column] DESC LIMIT [number of records]
否则,应为此向记录中添加时间戳列,并选择“按此列”
就个人而言,如果有选择的话,我不会为此使用记录ID,因为这不是它们的用途。记录ID可以在应用程序的整个生命周期内更改,它们不一定表示添加项的顺序。尤其是在数据导入/导出场景中。我更喜欢创建特殊列来存储此类信息,例如CreatedAt、ModifiedAt。如果您对记录使用自动增量ID,您可以使用:
SELECT * FROM [table] ORDER BY [id column] DESC LIMIT [number of records]
否则,应为此向记录中添加时间戳列,并选择“按此列”
就个人而言,如果有选择的话,我不会为此使用记录ID,因为这不是它们的用途。记录ID可以在应用程序的整个生命周期内更改,它们不一定表示添加项的顺序。尤其是在数据导入/导出场景中。我更喜欢创建特殊列来存储此类信息,例如CreatedAt、ModifiedAt。我认为这将更简单:
SELECT MAX(id) INTO @Max_table_Id FROM table;
// Insert operation here//////
SELECT * FROM table WHERE id>@Max_table_Id;
我认为这将更简单:
SELECT MAX(id) INTO @Max_table_Id FROM table;
// Insert operation here//////
SELECT * FROM table WHERE id>@Max_table_Id;
如果我使用limit,我只能得到10条记录。但我不确定用户在一次导入操作中可以添加多少条记录。如果我使用limit,我只能获得10条记录。但是我不确定用户在一次导入操作中可以添加多少条记录。