如何删除数据库中最后插入的记录? [英] How do i delete the last inserted record on database?
本文介绍了如何删除数据库中最后插入的记录?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
你好,
我有这个SQL语法来删除最后一条记录,但似乎拒绝工作......
代码段:
Hello,
I have this SQL syntax to delete the last record, but it seems to refuse to work...
Code Snippet:
private void cmdAnular_Click(object sender, EventArgs e)
{
string SQL = "DELETE FROM entradas WHERE id_entrada = @entrada ORDER BY id_entrada DESC LIMIT 1";
using (var cn = new MySqlConnection("server = localhost; user id = root; password = 12345; persistsecurityinfo = True; database = portaria; allowuservariables = True"))
{
using (var cmd = new MySqlCommand(SQL, cn))
{
int i = 0;
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@entrada", Grid1.Rows[i].Cells["#"].Value);
MySqlDataAdapter sda = new MySqlDataAdapter();
DataTable dt = new DataTable();
sda.SelectCommand = cmd;
sda.Fill(dt);
Grid1.Update();
Grid1.Refresh();
cn.Open();
}
cn.Close();
cmdAnular.Enabled = false;
}
}
SQLyog日志:
SQLyog LOG:
1 queries executed, 1 success, 0 errors, 0 warnings
Query: DELETE FROM entradas WHERE id_entrada = @entrada ORDER BY id_entrada DESC LIMIT 1
0 row(s) affected
Execution Time : 0 sec
Transfer Time : 0 sec
Total Time : 0.001 sec
我尝试过:
尝试使用记录ID检查#上显示的最高编号,然后将其删除。但是这个查询在SQLyog上没问题,但在实际程序上没有做任何事情。
What I have tried:
Tried to use record id to check the highest number shown on "#" and then delete it. But this query is fine on SQLyog, but not doing anything on the actual program.
推荐答案
You can add an auto increment/IDENTITY column, it will keep the track of inserted data. You can use the IDENTITY column in where condition of DELETE
Example:
[ID] INT IDENTITY (1, 1) NOT NULL
DELETE FROM Employee WHERE ID in(SELECT MAX(ID) FROM Employee)
这篇关于如何删除数据库中最后插入的记录?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文