如果多个用户同时使用此查询,是否可以?

时间:2016-10-20 08:18:27

标签: php mysql

我的表格看起来像这样:

=================================      ==========================
              USER                                NOTE
=================================      ==========================
id_u int auto_increment (PK)           id_n int auto_increment (PK)
name varchar(50)                       id_u int (FK)
                                       text varchar(100)
=================================      ==========================

我很好奇这个查询是否会在拥有大量用户的网站上造成任何问题。

$query = "INSERT INTO USER VALUES('','john')"; //query
$result = mysql_query($query);
if($result){
    $query = "INSERT INTO NOTE VALUES (LAST_INSERT_ID(),'','abc')";
    $result = mysql_query($query);
    if($result){
        echo "success";
    }else{
        echo "failed";
    }
}else{
    echo "failed";
}

如果多个用户同时使用此查询,会不会很好?

1 个答案:

答案 0 :(得分:0)

当同时从表中选择并插入表时,MySQL会创建一个临时表来保存SELECT中的行,然后将这些行插入到目标表中。但是,当t是TEMPORARY表时,仍然无法使用INSERT INTO t ... SELECT ... FROM t,因为TEMPORARY表在同一语句中不能被引用两次

参考:http://dev.mysql.com/doc/refman/5.7/en/insert-select.html