我目前正在用C#编写一个webapp,它要求我在注册表单上收集新的用户信息。需要将信息输入两个单独的表,一个表用于用户信息,例如姓名,电子邮件地址等。另一个用于公司信息,如公司名称,网站URL等。
我正在使用MySQL Connector for .NET,并且一直使用MySqlCommand编写参数化查询。
我需要做的是将用户信息插入到User表中,然后在Accounts表中创建一个记录,并通过ID将两者连接在一起。
因此用户表类似于:
UserID | Username | Password | EmailAddress | AccountID
11 Dave 1234 Em@il 14
公司表类似于:
AccountID | CompanyName | WebsiteURL | UserID
14 MyCo my.com 11
我考虑使用LAST_INSERTED_ID()MySQL函数,但我担心如果两个人同时注册,那么使用它可能会混合两个记录。
我很感谢有知识的人对此的任何想法。
谢谢,
戴夫
答案 0 :(得分:1)
我认为您应该使用Transaction来包装这两个INSERT。这样就可以确保它们一起执行。
答案 1 :(得分:1)
根据MySQL documentation LAST_INSERTED_ID()返回基于每个连接生成的最后一个ID,因此同时注册的两个不同用户将获得不同的ID。
另外,正如ngduc所说,最好使用一个事务来确保插入两个记录。