如何在使用Python在SQLite中插入行后检索插入的id?我有这样的表:
id INT AUTOINCREMENT PRIMARY KEY,
username VARCHAR(50),
password VARCHAR(50)
Run Code Online (Sandbox Code Playgroud)
我插入一个新行,例如数据username="test"和password="test".如何以事务安全的方式检索生成的id?这适用于网站解决方案,其中两个人可能同时插入数据.我知道我可以得到最后一行,但我不认为这是交易安全的.有人可以给我一些建议吗?
我有一个简单的问题,一个不那么简单的解决方案......我目前正在将一些数据插入到这样的数据库中:
kompenzacijeDataSet.KompenzacijeRow kompenzacija = kompenzacijeDataSet.Kompenzacije.NewKompenzacijeRow();
kompenzacija.Datum = DateTime.Now;
kompenzacija.PodjetjeID = stranka.id;
kompenzacija.Znesek = Decimal.Parse(tbZnesek.Text);
kompenzacijeDataSet.Kompenzacije.Rows.Add(kompenzacija);
kompenzacijeDataSetTableAdapters.KompenzacijeTableAdapter kompTA = new kompenzacijeDataSetTableAdapters.KompenzacijeTableAdapter();
kompTA.Update(this.kompenzacijeDataSet.Kompenzacije);
this.currentKompenzacijaID = LastInsertID(kompTA.Connection);
Run Code Online (Sandbox Code Playgroud)
最后一行非常重要.为什么我提供连接?那么有一个名为last_insert_rowid()的SQLite函数可以调用并获取最后一个插入ID.问题是它绑定到一个连接,.NET似乎重新打开并关闭每个数据集操作的连接.我以为从表适配器获取连接会改变一些事情.但事实并非如此.
有谁知道如何解决这个问题?也许从哪里获得持续的连接?或者更优雅的东西?
谢谢.
编辑:
这也是事务的问题,如果我想使用事务,我需要相同的连接,所以这也是一个问题......