用外键插入mysql

时间:2011-07-26 18:46:28

标签: mysql insert foreign-keys

我有一个表单字段,其中包含将放在mysql的不同表中的值。

它们都与外键相连。

如何将这些值放到不同的表中。

伪表:

users_table:
userId|userlogin

user_info:
info_id|userId|name|surname

user_contact:
contact_id|userId|phone|email


form includes:
userlogin
name
surname
phone
email

在我的研究中,我发现我可以使用mysql_insert_id来链接FK,但我想知道如果网站负载很高(同时发送差异请求),是否会导致问题。

我还发现我可以设置触发器来创建新的fk值:

CREATE TRIGGER ins_kimlik AFTER INSERT ON hastalar
for each row
insert into hasta_kimlik set idhasta = new.idhasta

但我不知道如何向他们添加数据。我可以用
UPDATE table SET (name, surname) VALUES ('John', 'Brown') WHERE info_id = LAST_INSERT_ID();

但它感觉不到原生的方式。

最佳做法是什么?

2 个答案:

答案 0 :(得分:1)

如果表是通过外键连接的,那么你不应该只从基本表(这里是users_table)开始,然后在user_info表中添加,然后在user_contact表中添加,或者反过来。只要您在其他表中填写了具有fk主键的表,就可以轻松添加。

  • INSERT SQL命令:
  

INSERT INTO table_name(column1,column2,column3,...)VALUES(value1,   value2,value3,...)

这就是你问的问题吗?

答案 1 :(得分:1)

  

我发现我可以使用mysql_insert_id链接FK,但我想知道这是否会导致   如果网站负载很高(同时发送差异请求),则会出现问题。

mysql_insert_id返回当前正在使用的数据库连接生成的最后一个自动增量值

其他进程在其他连接上执行的操作无关紧要。这很安全。你会得到正确的价值。

  

但它感觉不到原生的方式。

没了。正确的方法是:

  • INSERT用户
  • 获取身份
  • INSERT user_info