所以我有这个:
INSERT INTO Track (Trackname, Trackinfo) VALUES (Value1, Value2)
INSERT INTO Artiest (Artist) VALUES (Value1)
这两个表都有一个auto_increment的ID 如何创建一个具有ID ??
的表我想在C#
中这样做 编辑:也许在MySQL中有一种方法我可以获得2个表的最后ID?答案 0 :(得分:1)
您可以使用T-SQL和SCOPE_IDENTITY()编写存储过程。 或者您使用LINQ to Entities并检索新创建的实体的ID。
T-SQL:
DECLARE @TrackID AS int
INSERT INTO Track (Trackname, Trackinfo) VALUES (Value1, Value2)
SET @TrackID = SCOPE_IDENTITY()
DECLARE @ArtiestID AS int
INSERT INTO Artiest (Artist) VALUES (Value1)
SET @ArtiestID = SCOPE_IDENTITY()
现在使用这些ID插入到您的表格中。
INSERT INTO TrackArtiest (TrackID , ArtiestID ) VALUES (@TrackID , @ArtiestID)
使用Linq to Entities:
var myTrackObject = new Track(Value1, Value2);
var myArtiestObject= new Artiest(Value1);
// db is your datacontext
db.Tracks.Insert(myTrackObject);
db.Artiests.Insert(myArtiestObject);
db.SubmitChanges();
// You can retrieve the id from the object
int trackID = myTrackObject.ID;
int artiestID = myArtiestObject.ID;
var myTrackArtiest = new TrackArtiest(trackID, artiestID);
db.TrackArtiest.Insert(myTrackArtiest );
db.SubmitChanges();
这是你的意思吗?
答案 1 :(得分:0)
如果您正在使用SQL并希望返回插入操作的ID。使用:SQL中的SCOPE_IDENTITY()函数。但是你必须将它返回并映射到C#