同时插入多个外键

时间:2016-03-10 23:09:58

标签: php mysql foreign-keys auto-increment

我有一个表格,收集用户对他们所展示的房产的意见(房地产经纪人向潜在的商业租赁人展示)。

提交表单后,我将数据插入三个表:ShowingBusinessContact。此表单允许创建新的Businesses和新Contacts,同时还可以创建新的Showing记录。

我可以使用自动递增Business将信息插入我的Contacts表和我的primary key表中。

如果primary key Contacts foreign key Business primary key同时提交foreign key,我如何在primary keys中插入Business

我是否应该为Contactsforeign keys选择一个值表?有什么最好的做法?

此外,我希望在我的Showing表中插入来自BusinessIDforeign key的{​​{1}}作为Contacts。我目前在ContactsInsert foreign keys phpMyAdmin.php可能是独立的,因此我可以先 public class Team : INotifyPropertyChanged { private string _name; private string _city; private List<Player> _players; public string Name { get { return _name; } } public string City { get { return _city; } } public List<Player> Players { get { return _players; } set { _players =value; RaisePropertyChanged("Players"); } } #region INotifyPropertyChanged internal void RaisePropertyChanged(string prop) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(prop)); } } public event PropertyChangedEventHandler PropertyChanged; #endregion } public class Player { public int ID { get; set; } public string FirstName { get; set; } public string LastName { get; set; } } ,然后选择后续的 public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); DataContext = new Team { Players = new List<Player>() { new Player{ ID=1, FirstName="Mohammed", LastName="Ali" }, new Player{ ID=2, FirstName="Paul", LastName="Oshain" }, } }; } } {1}}?

最后我要注意,对于数据库,我使用<Window x:Class="WpfApplication4.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525"> <Grid> <DataGrid ItemsSource="{Binding Players}" AutoGenerateColumns="False" > <DataGrid.Columns> <DataGridTextColumn Header="Id" Binding="{Binding ID}"/> <DataGridTextColumn Header="First Name" Binding="{Binding FirstName}"/> <DataGridTextColumn Header="Last Name" Binding="{Binding LastName}" /> </DataGrid.Columns> </DataGrid> </Grid> </Window> 并在{{1}}页面内通过SQL插入。

1 个答案:

答案 0 :(得分:1)

要在插入行时检索分配给AUTO_INCREMENT列的值,MySQL会提供last_insert_id()函数。

在成功插入为AUTO_INCREMENT列分配值之后,在同一会话中,在发出任何其他SQL语句之前,您可以立即运行查询:

SELECT LAST_INSERT_ID()

从中返回的值可以在后续INSERT中使用。在您的方案中,该值可以作为外键列的值提供。